我創建了一個名爲'Item'的實體。它有一個Id,CreateDate和ModifyDate以及一些必需的數據。EF代碼優先 - 身份和計算列
我正在使用EF 4.3 Code First模型。如果能解決我的問題,我可以使用最新版本的EF。
所有這三個值都是可選的。有時,我可能會傳遞一些值,比如Id或CreateDate。如果我沒有通過,我希望EF從數據庫自動生成這些值,否則採用我通過的那個值。
到目前爲止我發現,如果我將Id列作爲Identity列,那麼它會忽略提供的值,對於計算列也是如此。
無論如何我會有選擇提供這些價值?
還有一件事,我有修改日期字段。每當我更新記錄時,我都希望DB更新當前的日期時間。我發現以下選項,但不知何故,我對其中的任何一個都不滿意。有沒有DB的直接選項(比如默認值)?
- 使用更新觸發更新modifydate
- 在C#側設置modifydate值
我的實體:
public class Item
{
public Guid? ItemId { get; set; }
public string SomeData { get; set; }
public DateTime CreateDate { get; set; }
public DateTime? ModifyDate { get; set; }
}
是的,我們可以使用構造函數來完成它,但是我想從DB中獲取它,這是因爲您後面提到的想要依賴於DB時鐘而不是不同的機器的原因。 – Hitesh
當然可以。 ItemId仍然可以由構造函數設置,並通過插入觸發器創建日期。 –