0

EFコードを使用して、最初に生成された列の名前を制御したいWHEN REFERENCING SELF。試し[ForeignKey]てみ[Column]た属性。[Column]は機能せず[ForeignKey]、問題を引き起こすと思われる関係を強制します。[ForeignKey]属性を使用して、このクラス/テーブルに接続された別のクラス/テーブルの列の名前を設定しました。

もつ

public class Episodes
{
    public long ID {get; set;}
    // ... other properties

    public List<Episodes> Children { get; set; }
}

テーブルが欲しい ( ID, ..., ParentID) - テーブルを取得する ( ID, ..., Episode_ID)

4

1 に答える 1

1

エンティティ クラスで外部キー列をプロパティとして公開していない場合は、Fluent API でのみ列名を定義できます。

modelBuilder.Entity<Episodes>()
    .HasMany(e => e.Children)
    .WithOptional()
    .Map(m => m.MapKey("ParentID"));

親はオプションであると仮定します(ParentIDDBテーブルのnull可能な列です)。ツリーに「ルート」、つまり親をもう持たないエピソードがあるはずなので、少なくともこれについてはエピソードParentID列は である必要がありますNULL

于 2012-08-04T19:44:50.763 に答える