0

私はこのエンティティを持っています:

public class Content
{
    public int Id { get; set; }
    public string Title { get; set; }
    public string Test { get; set; }
    public DateTime Date { get; set; }
}

次の画像のように、コードファーストで追加フィールドを使用して、それ自体と多対多の関係を作成したいと考えています。

ここに画像の説明を入力

これどうやってするの?

4

1 に答える 1

2

次のようなものが欲しいと思います:

public class Content
{
    public int Id { get; set; }
    public ICollection<ContentLink> OtherContents { get; set; }
}

public class ContentLink
{
    public int Id { get; set; }
    public Content Lhs{ get; set; }
    public Content Rhs{ get; set; }
    //other stuff
}

modelBuilder.Entity<Content>().
    HasMany(c => c.OtherContents).WithRequired(c=>c.Lhs);
modelBuilder.Entity<ContentLink>().
    HasRequired(c => c.Rhs).WithMany();

注: 上記は、このエンティティがリンクしているリソースをトラバースすることのみを許可し、あなたにリンクしている他のエンティティはトラバースできません。

詳細については、nav プロパティに関する私の投稿をご覧ください: http://blog.staticvoid.co.nz/2012/7/17/entity_framework-navigation_property_basics_with_code_first

于 2013-04-14T05:47:21.013 に答える