2012-02-17 53 views
0

所以我在我的部分類中重寫我的POCOEF節能屬性,而不是基礎屬性

public new double PaidOvertime 
    { 
     get 
     { 
      if (!InHoures) 
      { 
       return Math.Round(base.PaidOvertime/ 7, 2); 
      } 
      else 
      { 
       return base.PaidOvertime; 
      } 
     } 
     set 
     { 
      if (!InHoures) 
      { 
       base.PaidOvertime = value * 7; 
      } 
      else 
      { 
       base.PaidOvertime = Math.Round(value, 2); 
      } 
      statsChanged(); 
     } 
    } 

事物的屬性,當它來保存,EF保存該屬性的值此屬性。我希望EF將基本屬性或私有變量的值保存在基本屬性後面。

它是一種解決方法或即時消失的東西?

PS:當我說「節約」我的意思是保存到數據庫

+0

您是否使用EF Code First? – 2012-02-17 17:45:45

+0

@Serge我們使用帶WCF支持的ADO.NET POCO實體生成器。 – Gab 2012-02-17 18:20:53

回答

0

我希望你使用的是一些繼承映射,否則它不應該在所有的工作。

一旦你在派生類中使用new,你就會告訴.NET,這是你每次使用類實例時要使用的實現。只有在將類轉換爲基本類型並與基本類型一起使用時才使用基本實現 - 問題在於這是否適用於EF。

只是不這樣做。方法和屬性聲明中的關鍵字new只有在您使用對象控制所有代碼時才應使用。否則,你永遠不知道哪個實現將被調用。 EF不是你的代碼。