2015-08-20 162 views
8

我正在使用實體框架6與我的SQL,似乎行版本字節數組不被MySQL支持。 任何幫助如何實現這一點。實體框架6 mysql rowversion

[Column(TypeName = "timestamp")] 
[DatabaseGenerated(DatabaseGeneratedOption.Computed)] 
public DateTime TimeStamp { get; set; } 
+0

我使用上述解決方案** [這裏](http://stackoverflow.com/a/39760766/3278271)**,至今沒有問題。一切正常。 – Arsenius

回答

4

首先,如果您使用自動遷移,我認爲屬性屬性不足以創建正確的字段類型。
這裏https://dev.mysql.com/doc/refman/5.5/en/timestamp-initialization.html EF提供程序應該生成的語法用於創建自動生成/更新的時間戳。

創造合適的字段類型後,你可以做2次嘗試:

馬克領域的時間戳

[Timestamp] 
public DateTime TimeStamp { get; set; } 

我不認爲EF需要一個時間戳字段是字節[]。時間戳只應該表示數據庫生成字段,並且樂觀併發使用該字段(即,更新查詢包含要更新的記錄的鍵和此字段的位置)。但往往EF不會因爲我認爲馬克領域的數據庫,並作爲一個字段作爲生成的工作...

用來檢查樂觀併發異常

[ConcurrencyCheck] 
[DatabaseGenerated(DatabaseGeneratedOption.Computed)] 
public DateTime TimeStamp { get; set; }