[英]Entity Framework Code First Reference constraint issue
我的模型出現問題,並試圖刪除記錄。 我已將其縮小以嘗試顯示我遇到的問題
我有一個名為CollectedBags
的實體,具有一個ID和名稱。
然后,我有一個名為BankingRun
的實體,其中包含CollectedBags
的列表
public virtual List<CollectedBags> Bags { get; set; }
該模型自動在兩者之間添加關系,並且在數據庫中向收集的包中添加一列以引用BankingRun。
當我想刪除BankingRun而完全不影響CollectedBags表時,會出現問題。 CollectedBags記錄並不總是屬於BankingRun。 我嘗試刪除記錄的任何事情顯然都會導致兩個表之間的沖突,但是我對實體框架的缺乏了解使我陷入困境,而沒有編寫一些SQL來物理刪除CollectedBags中的Banking Run ID
public class CollectedBags
{
public long CollectedBagsId { get; set; }
public string Name { get; set; }
}
public class BankingRun
{
public long BankingRunId { get; set; }
public DateTime DateTimeVisited { get; set; }
public virtual List<CollectedBags> Bags { get; set; }
}
然后,我嘗試使用多個CollectedBags創建BankingRun后刪除它
對於Fluent API,請使用以下代碼:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<User>()
.HasOptional(a => a.UserDetail)
.WithOptionalDependent()
.WillCascadeOnDelete(false);
}
這只是一個例子,但重要的是.WillCascadeOnDelete(false);
基本上,這將防止在刪除一個實體時所有其他相關實體也被刪除。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.