簡體   English   中英

EF電動工具與自引用表混淆

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM