【发布时间】:2017-05-21 15:57:02
【问题描述】:
尝试将日期时间字段的默认值设置为当前时间。在 SQL 的字段设计器中,我会使用 getdate()。我应该在 Entity Framework 的设计器中使用什么?
谢谢
【问题讨论】:
-
我下面的答案好运吗?
尝试将日期时间字段的默认值设置为当前时间。在 SQL 的字段设计器中,我会使用 getdate()。我应该在 Entity Framework 的设计器中使用什么?
谢谢
【问题讨论】:
针对 EDMX 中的字段,将“StoredGeneratedPattern”设置为Computed。
你仍然需要 SQL Server 中的默认值,上述设置将确保 EF 荣誉。
【讨论】:
以RPM1984's answer为基础:
【讨论】:
这个答案的孩子虽然在将 StoreGeneratedPattern 属性值设置为 Computed 但将 StoreGeneratedPattern 属性值设置为 Identity 为我工作,我将默认“Guid”设置为 UNIQUEIDENTIFIER 类型的 UserID
【讨论】:
通过更改 T4 模板文件在 Entity Framework 5 和 6 中设置默认值
在.tt(模板文件)中进行了以下更改 删除第 34 行的 if 条件
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
【讨论】:
右击edmx,打开方式,选择xml编辑器,找到“ProviderManifestToken”从2008到2005的变化。保存。
【讨论】: