gpt4 book ai didi

asp.net - Entity Framework : disable delete globally

转载 作者:行者123 更新时间:2023-12-02 16:40:47 24 4
gpt4 key购买 nike

我们正在启动一个新的应用程序。我们想使用 Entity Framework 。我们很少担心意外删除sql行(特别是意外设置相关数据等)

我想禁用每个删除,因为我们只是用“validUntil”列标记每一行并且从不删除行。

我看到了that it can done by roles in sql ,但我希望所有逻辑和控制都只在代码中。

也许在 Entity Framework 核心中有新功能可以启用它?我知道用EF还是可以写行sql的,但是我们不怕这种情况。

我还尝试删除实体关系的 setter 以更加轻松,但这破坏了 EF 的正常功能,并且看起来不是一个好主意。

我在上面的链接中看到了使用存储库模式的建议,但是 here看起来这不是一个好的做法。

我如何安全地使用 EF?谢谢!

最佳答案

角色选项是一种方法,但您也可以覆盖 SaveChanges .

public override int SaveChanges()
{
foreach (DbEntityEntry entity in this.ChangeTracker.Entries)
{
if (entity.State == System.Data.EntityState.Deleted)
return;
}

base.SaveChanges();
}

编辑

我在 git 上读到 EF Core :

If you want to change the delete behavior for all relationships, then you can use this code in OnModelCreating(...) to bulk set it for all relationships in your model.

foreach (var relationship in modelBuilder.Model.GetEntityTypes().SelectMany(e => e.GetForeignKeys()))
{
relationship.DeleteBehavior = DeleteBehavior.Restrict;
}

关于asp.net - Entity Framework : disable delete globally,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38314487/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com