gpt4 book ai didi

c# - 如何使用具有数据库优先方法的 DbModelBuilder 来实现软删除

转载 作者:太空狗 更新时间:2023-10-29 19:47:46 24 4
gpt4 key购买 nike

我正在尝试在我们的 EF 6 项目中实现软删除。我们正在使用数据库优先方法,我注意到您不能覆盖 OnModelCreating

使用代码优先方法时,可以为特定实体应用全局过滤器,如本 blog post 中所述.

我如何使用数据库优先方法重新创建它?

public class MyContext : DbContext
{
public virtual IDbSet<Company> Companies { get; set; }

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Company>()
.Map(m => m.Requires("IsDeleted").HasValue(false))
.Ignore(m => m.IsDeleted);
}
}

最佳答案

public class MyContext : DbContext
{
public virtual IDbSet<Company> Companies { get; set; }

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Company>()
.Map(m => m.Requires("IsDeleted").HasValue(false))
.Ignore(m => m.IsDeleted);

base.OnModelCreating(modelBuilder);
}
}

你需要编写 base.OnModelCreating(modelBuilder);构建您的查询,我还在帖子中突出显示了一行。

关于c# - 如何使用具有数据库优先方法的 DbModelBuilder 来实现软删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33792020/

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