3

我只是做我的第一個步驟,EF CodeFirst,尤其是dataAnnotations。 現在我正在盡我所能瞭解「數據庫生成」屬性。 到目前爲止我所知道的是:如何定義DatabaseGenerated.Computed應該計算什麼?

  • 使用此屬性爲我提供了三個選項來處理屬性值的創建:Computed,Id和None。
  • 使用此屬性意味着,屬性不能手動更新 - 它是由數據庫完成

所以 - 我能想象用個「ID」選項時會發生什麼,我不知道是什麼使用「計算」​​選項時發生。我紅了,這應該告訴db來計算字段值。

例如:字段 「總和」=字段 「價格」 +字段 「航運」。

但我該如何使用,在這種方式?我環顧四周,沒有找到任何例子。你可以幫我嗎?

回答

0

不能使用EF告知數據庫如何計算列 - 你只能告訴EF該列是生成的數據庫,所以應該從數據庫中檢索您在代碼中使用。

控制數據庫如何計算您必須手動指示它外線EF或在數據庫初始化邏輯列。

protected override void OnModelCreating(DbModelBuilder modelBuilder) 
{ 
    context.Database.ExecuteSqlCommand("RAW SQL HERE"); 
} 

你的SQL(MS T-SQL)可能是這樣的(more here):

CREATE TABLE t2 (a int, b int, c int, x float, 
    y AS CASE x 
     WHEN 0 THEN a 
     WHEN 1 THEN b 
     ELSE c 
     END) 

對於SQL下面是有關計算Colums一些信息: http://msdn.microsoft.com/en-us/library/ms191250(v=sql.105).aspx

而且以供參考: http://msdn.microsoft.com/en-us/library/gg193958.aspx

相關問題