【问题标题】:Set default values for model using Entity Framework 4.3使用 Entity Framework 4.3 为模型设置默认值
【发布时间】:2012-05-22 19:56:23
【问题描述】:

我已将实体框架添加到具有现有表的现有项目中。这些表包含几个为 NULL 的 uniqueidentifier 列。当我从这些加载数据时,我的模型属性也是 null 而不是 Guid.Empty。我尝试使用构造函数和

设置默认值
AlterColumn("tblItems", "ThreadRoot", c => c.Guid(nullable: true, defaultValue: Guid.Empty)); 

但它仍然返回 null。

我怎样才能做到这一点?

【问题讨论】:

  • 你有权限改变现有的数据库结构吗?
  • 您使用的是代码优先方法吗?
  • 是的,我使用的是代码优先方法
  • 很抱歉再问一个问题,但是为什么需要 guid.empty 而不是 null? Guid.Empty 和 null 不是指同一件事。可为空的 guid 的值可能为 null 或 guid.empty。
  • 有一个现有的代码库执行 Guid.Empty 检查而不是空检查...所以我希望我可以设置一个默认值,而不是更改代码库。不可能?

标签: c# entity-framework


【解决方案1】:

当我从这些加载数据时,我的模型属性也是 null 而不是 Guid.Empty

这是因为已经存在的数据将包含null,因为它们是在您发出AlterColumn 方法之前存储的。默认值将在插入新记录时写入,而相应的列未设置。

【讨论】:

    【解决方案2】:

    在您的模型中,只需将默认值添加到属性:

    public class Item {
        public Guid ThreadRoot { get; set; }
    
        public Item() {
            ThreadRoot = Guid.Empty; //default value
        }
     }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-12-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-02
      • 1970-01-01
      • 2014-03-19
      相关资源
      最近更新 更多