我正在MVC控制器中删除父实体,并收到此错误:
[SqlException]:DELETE语句与REFERENCE约束“ FK_dbo.MessageThread_dbo.Listings_ListingID”冲突。数据库“ MyDB”的表“ dbo.MessageThread”的列“ ListingID”中发生了冲突。 该语句已终止。 在System.Data.SqlClient.SqlConnection.OnError(SqlException异常,布尔型breakConnection,Action 1 wrapCloseInAction)
MessageThread表在EF中的映射如下:
// Relationships
this.HasOptional(t => t.Listing)
.WithMany(t => t.MessageThreads)
.HasForeignKey(d => d.ListingID);
ListingID
(子级)中的MessageThread
(父级)列为nullable
我看过this post,但是答案却没用。
根据this,EF映射不应该删除父记录并将ListingID
中的子MessageThread
值设置为null
吗?
答案 0 :(得分:0)
您无法从此表中删除
dbo.MessageThread", column 'ListingID'
因为您有此表的外键
FK_dbo.MessageThread_dbo.Listings_ListingID
在继续操作之前,请先删除外键字段值。
或者您可以通过Cascading Deletion
完成
看看这个链接