我正在尝试向CreatedDate
模型中的实体添加属性,并且正在使用 EF5 Code First。我希望这个日期一旦设置就不会更改,我希望它是 UTC 日期。我不想使用构造函数,因为我的模型中有许多实体,我想从包含该CreatedDate
属性的抽象类继承,并且我不能强制使用接口的构造函数。
我尝试了不同的数据注释,并尝试编写一个数据库初始化程序,该初始化程序将获取特定的实体类型并编写一个更改约束,其getdate()
默认值为正确的table_name
and column_name
,但我无法正确编写该代码。
请不要让我参考AuditDbContext - Entity Framework Auditing Context或EntityFramework.Extended工具,因为它们在这里没有我需要的功能。
更新
MyCreatedDate
为空,SaveChanges()
因为我将 ViewModel 传递给我的视图,该视图正确地没有CreatedDate
在其中调用审计属性。即使我将模型传递给我的视图,我也不会CreatedDate
在视图中编辑或存储它。
我在这里读到我可以添加[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
,这将告诉 EFCreatedDate
在插入和更新之后正确存储,但不允许我的应用程序更改它:但我只是Cannot insert explicit value for identity column in table when IDENTITY_INSERT is set to OFF
通过添加此属性得到一个错误。
我即将切换到 EF Model First,因为这个简单的数据库要求在 Code First 中实现是荒谬的。