Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用实体框架4.3为模型设置默认值_C#_Entity Framework - Fatal编程技术网

C# 使用实体框架4.3为模型设置默认值

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

我已将实体框架添加到具有现有表的现有项目中。这些表包含两个为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方法之前存储的。插入新记录时,如果未设置相应的列,将写入默认值。

您有权更改现有数据库结构吗?是否使用代码优先方法?是的,我使用代码优先方法抱歉,我要问另一个问题,但为什么需要guid.empty而不是null?Guid.Empty和null指的不是同一事物。可为空的guid的值可以是null或guid.empty。存在一个执行guid的现有代码基。空检查和非空检查。。。因此,我希望可以设置一个默认值,而不是更改代码库。不可能?