我有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. 實體框架覆蓋屬性獲取