C# 使用实体框架4.3为模型设置默认值
我已将实体框架添加到具有现有表的现有项目中。这些表包含两个为NULL的uniqueidentifier列。当我从这些数据库加载数据时,我的模型属性也是null,而不是Guid.Empty。我尝试使用构造函数和C# 使用实体框架4.3为模型设置默认值,c#,entity-framework,C#,Entity Framework,我已将实体框架添加到具有现有表的现有项目中。这些表包含两个为NULL的uniqueidentifier列。当我从这些数据库加载数据时,我的模型属性也是null,而不是Guid.Empty。我尝试使用构造函数和 AlterColumn("tblItems", "ThreadRoot", c => c.Guid(nullable: true, defaultValue: Guid.Empty)); 但它仍然返回null 如何实现这一点?在您的模型中,只需将默认值添加到属性: public
AlterColumn("tblItems", "ThreadRoot", c => c.Guid(nullable: true, defaultValue: Guid.Empty));
但它仍然返回null
如何实现这一点?在您的模型中,只需将默认值添加到属性:
public class Item {
public Guid ThreadRoot { get; set; }
public Item() {
ThreadRoot = Guid.Empty; //default value
}
}
当我从这些数据库加载数据时,我的模型属性也是null,而不是Guid.Empty
这是因为已经存在的数据将包含null,因为它们是在发出AlterColumn方法之前存储的。插入新记录时,如果未设置相应的列,将写入默认值。您有权更改现有数据库结构吗?是否使用代码优先方法?是的,我使用代码优先方法抱歉,我要问另一个问题,但为什么需要guid.empty而不是null?Guid.Empty和null指的不是同一事物。可为空的guid的值可以是null或guid.empty。存在一个执行guid的现有代码基。空检查和非空检查。。。因此,我希望可以设置一个默认值,而不是更改代码库。不可能?