23

私はかなり多くのプログラマーの投稿を読んでいます。依存操作の有効な順序を判断できません。 Entity Frameworkで自己参照関係を使用する場合、外部キー制約、モデル要件、またはストア生成値 -exceptionによって依存関係が存在する可能性があります。Entity Frameworkの自己参照/親子関係

私は仕事に親子関係を取得しようとしています:これは私が使用した構成(流暢API)である

public class Category { 
    public int CategoryId { get; set; } 
    public string Name { get; set; } 
    public int ParentId { get; set; } 
    public Category Parent { get; set; } 
    public List<Category> Children { get; set; } 
} 

Property(c => c.ParentId).IsOptional(); 
HasMany(c => c.Children).WithOptional(c => c.Parent).HasForeignKey(c => c.ParentId); 
//HasOptional(c => c.Parent).WithMany(c => c.Children).HasForeignKey(c => c.ParentId); 

両方hasManyの()とHasOptional( )設定では、次のような新しいカテゴリを保存しようとすると、「従属操作の有効な順序を決定できません...」という例外が発生します。

context.Categories.Add(new Category { Name = "test" }); 

EFがnull parentIdを持つカテゴリを挿入しない理由はわかりません。データベースでは、ParentId外部キーをnullにできます。

これを行う方法を教えていただけますか?

答えて

28

あなたはオプション関係の外部キープロパティとしてそれを使用するためにnullとして分類クラスでParentIdを定義する必要があります。

public int? ParentId { get; set; } 

intプロパティが値nullを取ることができないので、表現することができませんNULLをデータベース列の値として使用します。

+0

ありがとうございます!それはうまくいった。 – Julius

+0

+1あなたの両方に、あなたは私の一日を作った。タックスはたくさんある。 –

+0

この親子関係を属性(流暢)で実装する方法はありますか? – Shimmy

関連する問題