我有DateTime
属性。我需要此属性的默认值为DateTime.Now
。然后我发现你可以在SQL中指定一个属性StoreGeneratedPattern="Computed"
并将其设置为(getdate())
。这工作成功。但我无法在代码中更改此属性。有时我需要将此属性更改为任何DateTime值。但我的更改没有保存。实体框架:StoreGeneratedPattern =“计算”属性
12
A
回答
14
将此属性设置为Computed会告诉EF您不能直接设置该值。你怎么能?此属性为计算列而存在,根据定义,这些列不会保存回数据库。
不幸的是,英孚的“默认值”属性只能设置在编译时已知值,因此不DateTime.Now
此链接提供了一个不错的解决方法:
您也可以在上下文中处理SavingChanges
事件,并在其中添加默认值,但只有在实际调用SaveChanges()
时才会发生,而不是在创建对象时发生。
partial void OnContextCreated() {
this.SavingChanges += new EventHandler(AccrualTrackingEntities_SavingChanges);
}
void AccrualTrackingEntities_SavingChanges(object sender, EventArgs e) {
List<Invoice> Invoices = this.ObjectStateManager
.GetObjectStateEntries(System.Data.EntityState.Added | System.Data.EntityState.Modified)
.Select(entry => entry.Entity)
.OfType<Invoice>().ToList();
foreach(Invoice I in Invoices)
if (I.EntityState == System.Data.EntityState.Added) {
//set default values
} else {
//?? whatever
}
}
相关问题
- 1. 实体框架中的计算属性
- 2. 实体框架计算属性问题
- 3. 何时将StoreGeneratedPattern属性添加到ssdl中的属性? (实体框架)
- 4. 实体框架,计算实体字段
- 5. 实体框架:如何防止在更新模型上覆盖“StoreGeneratedPattern”属性?
- 6. 实体框架中计算属性的数据绑定
- 7. 实体框架计算属性Odata Feed中未显示
- 8. 实体框架代码第一个计算属性
- 9. 如何处理实体框架4.1中的“计算”属性?
- 10. 实体框架ID属性
- 11. 覆盖实体框架实体属性
- 12. 实体框架,MVVM和计算类
- 13. 在实体框架中计算订单
- 14. 使用实体框架计算日期?
- 15. 实体框架高级计算字段?
- 16. StoreGeneratedPattern不能与DevArt实体框架一起使用?
- 17. 实体框架搜索实体属性和实体ICollection
- 18. 实体框架属性隐藏
- 19. 实体框架忽略NotMapped属性
- 20. 实体框架和SQL Server表属性
- 21. 实体框架4.1 InverseProperty属性和ForeignKey
- 22. 实体属性值(EAV)框架?
- 23. 实体框架导航属性为null
- 24. 实体框架 - 版本属性名称
- 25. 实体框架 - 对象属性
- 26. 实体框架虚拟属性
- 27. 自定义属性与实体框架
- 28. 实体框架关系属性更新?
- 29. 实体框架 - 创建导航属性
- 30. 实体框架覆盖属性获取