数据模型中字段的默认值 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 映射,因此您在此处传递的默认值可能是 true
或 1
。我会测试两者:-)
我需要为数据模型 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 映射,因此您在此处传递的默认值可能是 true
或 1
。我会测试两者:-)