在EF设计器日期时间中设置默认值

时间:2011-01-13 18:34:22

标签: entity-framework-4

尝试将datetime字段的默认值设置为占用当前时间。在SQL的字段设计器中,我使用 getdate()。我应该在Entity Framework的设计师中使用什么?

THX

5 个答案:

答案 0 :(得分:28)

针对EDMX中的字段将“ StoredGeneratedPattern ”设置为Computed

你仍然需要SQL Server中的默认值,上面的设置将确保EF荣誉。

答案 1 :(得分:2)

RPM1984's answer

为基础
  1. 在我的示例中,在EDMX文件中选择具有默认值 Created_On 的字段
  2. 转到属性面板
  3. 选择 StoreGeneratedPattern 属性
  4. 然后将值更改为已计算
  5. EDMX to Properties panel

答案 2 :(得分:0)

这个答案的孩子虽然在将 StoreGeneratedPattern 属性值设置为已计算但设置 StoreGeneratedPattern 属性值后对我没有用处身份为我工作,我正在设置默认" Guid"到 UNIQUEIDENTIFIER类型的用户ID

答案 3 :(得分:-2)

通过更改T4模板文件

在Entity Framework 5和6中设置默认值

在.tt(模板文件)中进行以下更改 删除第34行的条件

34 if (propertiesWithDefaultValues.Any() || collectionNavigationProperties.Any() || complexProperties.Any())
35 {

添加

59 OnCreated();
60 }
61
62 partial void OnCreated();
63 <#

参考此图片 http://i.stack.imgur.com/DdlNB.png 红色表示删除,绿色表示添加

这将使用OnCreated方法在所有实体类中添加构造函数。

如下所示

public partial class Category
{
    public Category()
    {
      this.Products = new HashSet<Product>();
      OnCreated();
    }

 partial void OnCreated();
 public int Id { get; set; }
 public string Name { get; set; }

 public virtual ICollection<Product> Products { get; set; }
}

然后使用与实体相同的命名空间创建类文件。

public partial class Category
{
   partial void OnCreated()
   {
      Name = "abc"
   }
}

请参阅以下答案以获取更多详情 https://stackoverflow.com/a/38882032/5475124

答案 4 :(得分:-4)

右键单击edmx,打开方式,选择xml编辑器,找到“ProviderManifestToken”从2008年更改为2005年。保存。