比方說,我有這兩個非常基本的實體:EF4.1代碼首先:如何禁用級聯刪除在相關的實體沒有導航屬性的關係
public class ParentEntity
{
public int Id;
public virtual ICollection<ChildEntity> Childrens;
}
public class ChildEntity
{
public int Id;
public int ParentEntityId; // Foreign Key
public virtual ParentEntity parent; // [NOTWANTED]
}
對於一些原因,我不希望ChildEntity將參考資料保留給其父母。我只是想讓它保留ParentEntity標識,但沒有更多。 到目前爲止,沒問題,我只是刪除[NOTWANTED]一行,一切都按預期工作。
我的問題在這裏是:如何禁用級聯刪除在這種特定情況下?
如果我仍然有父導航屬性這將是那麼容易,因爲:
modelBuilder.Entity<ChildEntity>()
.HasRequired(c => c.parent)
.WithMany(p => p.Childrens)
.WillCascadeOndelete(false)
但是沒有導航屬性我不知道我怎樣才能實現以禁用刪除級聯(不包括全球禁用它當然,也不是每桌,但只是關係)。
我已經把現在做的是建立外鍵的可空INT,以禁用刪除級聯,但是這並不漂亮:
public int? ParentEntityId; // Foreign Key - nullable just to disable cascade on delete
我怎樣才能得到它一起工作流利的API?認爲它應該是可能的。
你需要.hasOne(ParentEntity) – Saeid 2017-06-13 15:43:24