数据模型中字段的默认值 asp.net 核心

default value for field in data model asp.net Core

我需要为数据模型 class 中的字段设置默认值,它是我正在构建的 ASP.NET MVC 核心 Web 应用程序的一部分。

正在使用软删除实现该应用程序。也就是说,Model Class / DB Table 有一个名为 "Active" 的字段,它是一个布尔值/位,相应地设置为 true 或 false。即当一个项目被删除时,它的活动值为 false / 0。所有项目在创建时都是活动的。

我知道当数据发布到控制器中的 "CreateItem" 方法时,可以在控制器中显式设置值,但我宁愿不必这样做。有什么不同的方法吗?例如用属性装饰模型 class 中的字段。

我还没有测试过这个,但是在你的 DBContext class 你会做以下事情:

protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        modelBuilder.Entity<YourEntity>()
            .Property(b => b.YourBooleanProperty)
            .HasDefaultValue(true);
    }

HasDefaultValue 接受一个对象,所以我不确定 EF 在这种情况下是否执行任何 sql 映射,因此您在此处传递的默认值可能是 true1。我会测试两者:-)