を削除する必要がメインクラスを削除するには最初に設定し、コードをNULL可能外部キーで削除し、これを達成する最善の方法はおそらくFluent APIを使用することです。
あなたDBContextにこの流暢APIのコードを追加します。
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<SubItem>()
.HasOptional(o => o.MainClass)
.WithMany(m => m.subItems)
.HasForeignKey(k => k.MainClassId)
.WillCascadeOnDelete(true);
}
とあなたのサブ項目クラスは、これらのプロパティで更新する必要があります
Class SubItem
{
[Key] int id {get; set;}
public string name {get;set;}
public int? MainClassId { get; set;}
public virtual MainClass MainClass { get; set; }
}
あなたはMainClass項目にサブアイテムを削除している場合、私は信じています削除されるコンテキスト(MainClassオブジェクトを引っ張るときにinclude文を使用)でロードされなければならない(MUST)。
データベースにアクセスしてこの外部キーを設定して、削除時にカスケードを有効にすると、データベースでカスケード削除が処理されるため、サブアイテムをコンテキストにロードする必要はありませんMainClassオブジェクトは削除されます。
私はそれを試みましたが、1x1ではなく、1xManyの依存関係です。 –
@DanielSantos申し訳ありませんが、私は間違っていました。私はそれを修正し、過去にこれをどのようにしたのかの答えを更新しました。 – JustSomeDude