[英]EF Power Tools confused by Self Referential Table
我正在使用Visual Studio Entity Framework電動工具從數據庫中生成poco類。 它一直有效,直到我向表添加了自引用鍵。
CREATE TABLE [dbo].[Item](
[Id] [int] IDENTITY(1,1) NOT NULL,
[Name] [nvarchar](100) NOT NULL,
[parentItemId] [int] NULL,
...
ALTER TABLE [dbo].[Item] WITH CHECK ADD CONSTRAINT [FK_Item_Item] FOREIGN KEY([parentItemId])
現在,我的項目類與以前相同(它不包含新的parentItemId字段):
public partial class Item
{
public Item()
{
}
public int Id { get; set; }
public string Name { get; set; }
}
看來,電動工具無法在dbContext類內部生成任何代碼。
使用這種數據庫結構是否超出了EF?
如果是這樣,那么最好的解決方案是什么? 我唯一能想到的就是添加另一個表ItemItem並創建多對多關系(這太過分了,但是...)
我在那篇文章中找不到一些課程。 我確實在另一篇文章中做了這個工作。 Item類的最終結果是:
public partial class Item
...
public virtual int? ParentId { get; set; }
public virtual Item Parent { get; set; }
public virtual ICollection<Item> Children { get; set; }
}
映射類需要:
this.HasOptional(x => x.Parent)
.WithMany(x => x.Children)
.HasForeignKey(x => x.ParentId)
.WillCascadeOnDelete(false);
它似乎有效。 我不需要任何ProxyCreation或CreateObject命令...最大的問題是,我無法再使用EF電動工具來生成任何新的Poco類。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.