繁体   English   中英

EF一对多(可空)删除

[英]EF one to many (nullable) delete

我正在MVC控制器中删除父实体,并收到此错误:

[SqlException]:DELETE语句与REFERENCE约束“ FK_dbo.MessageThread_dbo.Listings_ListingID”冲突。 数据库“ MyDB”的表“ dbo.MessageThread”的列“ ListingID”中发生了冲突。 该语句已终止。 在System.Data.SqlClient.SqlConnection.OnError(SqlException异常,布尔值breakConnection,动作1 wrapCloseInAction)

MessageThread表在EF中的映射如下:

// Relationships
this.HasOptional(t => t.Listing)
        .WithMany(t => t.MessageThreads)
        .HasForeignKey(d => d.ListingID);

MessageThread (子级)中的ListingID (父级)列可以为nullable

我看了这篇文章,但答案却没用。

根据这个 ,应该不是EF映射删除父记录,并设置孩子ListingID价值观MessageThreadnull

您无法从此表中删除

dbo.MessageThread", column 'ListingID'

因为您有此表的外键

FK_dbo.MessageThread_dbo.Listings_ListingID

在继续之前,请先删除外键字段值。

或者您可以通过Cascading Deletion来实现,请查看此链接

级联删除

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM