EF7 RC1:禁用级联删除 [英] EF7 RC1 : Disable Cascade Delete
本文介绍了EF7 RC1:禁用级联删除的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
在昨天发布的EntityFramework 7的RC1中,添加了Cascade Delete。
In the RC1 of EntityFramework 7, released yesterday, Cascade Delete was added.
要针对每个关系禁用它,我可以使用:
To disable it per relationship, I can use :
builder.Entity<Site>().HasOne(e => e.Person)
.WithMany(x => x.Sites).Metadata.DeleteBehavior = DeleteBehavior.Restrict;
我想为DbContext全局禁用它,但没有找到方法。我该怎么办?
I want to disable it globally for a DbContext, but I didn't find a way. How can I do ?
推荐答案
有人在github项目论坛上说,目前唯一的方法就是迭代方法 OnModelCreating(ModelBuilder builder)
中的所有关系,并将 DeleteBehavior
属性设置为 DeleteBehavior .Restrict
:
Someone stated on the github project forum that the only way to do it right now is to iterate through all relationships in the method OnModelCreating(ModelBuilder builder)
, and set the DeleteBehavior
property to DeleteBehavior.Restrict
:
foreach (var relationship in builder.Model.GetEntityTypes().SelectMany(e => e.GetForeignKeys()))
{
relationship.DeleteBehavior = DeleteBehavior.Restrict;
}
这篇关于EF7 RC1:禁用级联删除的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文