【发布时间】:2013-01-01 08:52:21
【问题描述】:
我正在尝试向我的模型中的实体添加 CreatedDate 属性,并且正在使用 EF5 Code First。我希望这个日期一旦设置就不会更改,我希望它是 UTC 日期。我不想使用构造函数,因为我的模型中有许多实体想要从包含CreatedDate 属性的抽象类继承,并且我不能强制使用带有接口的构造函数。
我尝试了不同的数据注释,并尝试编写一个数据库初始化程序,该初始化程序将获取特定的实体类型,并为正确的table_name 和column_name 编写一个带有getdate() 默认值的alter 约束,但是我无法正确编写该代码。
请不要让我参考AuditDbContext - Entity Framework Auditing Context 或EntityFramework.Extended 工具,因为它们不能满足我的需要。
更新
我的 CreatedDate 在 SaveChanges() 上为空,因为我将 ViewModel 传递给我的视图,其中正确地没有名为 CreatedDate 的审计属性。即使我将模型传递给我的视图,我也不会在视图中编辑或存储CreatedDate。
我读到here,我可以添加[DatabaseGenerated(DatabaseGeneratedOption.Identity)],这将告诉EF 在插入和更新之后正确存储CreatedDate,但不允许我的应用程序更改它:但我只得到一个@ 987654335@ 添加此属性时出错。
我即将切换到 EF Model First,因为这个简单的数据库要求在 Code First 中实现是荒谬的。
【问题讨论】:
标签: entity-framework ef-code-first entity-framework-5 code-first entity-framework-migrations