我已将实体框架添加到具有现有表的现有项目中。这些表包含几个为 NULL 的 uniqueidentifier 列。当我从这些加载数据时,我的模型属性也是 null 而不是 Guid.Empty。我尝试使用构造函数和
AlterColumn("tblItems", "ThreadRoot", c => c.Guid(nullable: true, defaultValue: Guid.Empty));
但它仍然返回null。
我怎样才能做到这一点?
我已将实体框架添加到具有现有表的现有项目中。这些表包含几个为 NULL 的 uniqueidentifier 列。当我从这些加载数据时,我的模型属性也是 null 而不是 Guid.Empty。我尝试使用构造函数和
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
方法之前存储的。默认值将在插入新记录时写入,而相应的列未设置。