[英]optional optional dependent relationship EF codefirst
我有以下型號:
User
id
Document Doc1
Document Doc2
Document
Id
Data
Name
在實體框架中建模的東西如下:
modelBuilder.Entity<Document>()
.HasOptional(e => e.User)
.WithOptionalPrincipal(e => e.Doc1);
modelBuilder.Entity<Document>()
.HasOptional(e => e.User)
.WithOptionalPrincipal(e => e.Doc2);
這個想法是用戶不需要這兩個文件。 但是,當我嘗試使用以下代碼刪除文檔時:
using (var ctx = new DealersContext("Db"))
{
var doc = ctx.Documents.FirstOrDefault(d => d.Id == docId);
if (doc != null)
{
ctx.Documents.Remove(doc);
ctx.SaveChanges();
}
}
我收到以下錯誤:DELETE語句與REFERENCE約束“FK_dbo.DealersUsers_dbo.Documents_IdDocument_Id”沖突。 沖突發生在數據庫“DealersDb”,表“dbo.DealersUsers”,列'IdDocument_Id'中。 怎么解決這個問題?
該文檔仍有經銷商(或經銷商仍有此文檔),導致數據庫需要在從數據庫中刪除文檔時將'IdDocument_Id設置為null。
在這種情況下,'IdDocument_Id'不可為空。 這導致了這個錯誤。 您還需要從數據庫中刪除此關系,或使經銷商>文檔關系可以為空
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.