【发布时间】:2013-12-06 20:09:38
【问题描述】:
在旧版应用程序中,大多数字符串属性不能为空,并且需要具有默认值 string.empty。
我知道可以通过迁移来做到这一点,但我正在寻找一种使用流畅的配置界面来做到这一点的方法:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Properties<string>().Configure(c =>
{
c.HasMaxLength(255);
if (!c.ClrPropertyInfo.IsDefined(typeof (NullableAttribute), false))
{
c.IsRequired();
// I want to set a default value (string.empty) here.
}
}
有没有办法做到这一点,或者我注定要初始化实体构造函数中的所有字符串?
【问题讨论】:
-
在实体构造函数中设置如何?
-
@old-geezer,我现在正在解决这个问题,它并不能解决我的问题。
-
作为补充:由于 EF 6 无法实现并且我不想在构造函数中设置默认值,因此我使用 SQL 设置默认约束,至少对于使用先做模型。在我创建 DBContext 实例后,这一直发生,但它至少是单元测试的一种解决方法。
标签: c# .net entity-framework ef-code-first entity-framework-6