解決策を探していて、良い情報が見つからない。多くのEFドキュメントは古くなっています。ここに私の問題があります。Entity Framework:外部キー制約による依存関係
ParentIDナビゲーションプロパティを使用して子に親を追加すると、すべて正常に動作します。
私は子供のリストを経由して親に子を追加し、子供が既存している場合、私はこの例外を取得:
DbUpdateException: に依存 操作のための有効な順序を決定することができません。外部キー制約、モデル の要件、またはストアで生成された の値に対して、 の依存関係が存在する可能性があります。
私は子供のリストを経由して親に子を追加し、子供が(も永続化する必要があります)新規の場合、私はこの例外を取得:
DbUpdateConcurrencyException:ストア UPDATE、INSERT、または削除ステートメント が予期しない行数 (0)に影響しました。エンティティがロードされてから、エンティティが変更されたか、または削除された可能性があります( )。 ObjectStateManagerエントリを更新します。
Node.cs
public class Node
{
public long ID { get; private set; }
public long? ParentID { get; set; }
public List<Node> Children { get; set; }
}
protected override void OnModelCreating(DbModelBuilder mb)
{
mb.Entity<Node>()
.HasMany(c => c.Children)
.WithOptional()
.HasForeignKey(c => c.ParentID);
}
私は動的プロキシを必要としません。私はバーチャルでプロキシをオフにしてみるつもりだが、それが役に立たないと思う。これは遅延読み込みの問題ではありません(私が思う限り)。私は明日更新する必要があります。 – OpticalDelusion