我試圖重構一個現有的代碼庫來使用POCO EF。目前它使用EntityObject
s,但是有自定義代碼來將映射對象「拼合」爲POCO,即對於所有映射類別,目前有兩個相關對象,一個POCO調用MyClass
,一個調用,調用MyClassEF
,它具有帶簽名的單個附加方法MyClass Flatten()
。我知道這看起來很可怕,但它允許將數據庫中的小數類型映射到模型中的雙精度類型,因爲轉換可以在Flatten()
方法中進行。如何將小數映射爲EntityFramework POCO的雙倍映射?
雙重類型在代碼中使用,因爲它們在執行分析計算時速度相當快,因此十進制類型可能在數據庫中使用,因爲它們在當時似乎是個好主意,並且以前的手動滾動的ORM沒有EF所做的類型映射限制。不幸的是,簡單地改變數據庫中的數據類型現在是不切實際的,因爲有太多的應用程序使用它(儘管大多數應用程序仍然將類型轉換爲double類型,但他們仍然認爲它是db中的十進制數)。
所以,目前我看修改我的模型類有這樣的事情:
private double _myDouble;
public double MyDouble { get { return _myDouble; } set { _myDouble = value; }
public decimal MyDouble_asDecimal {
get { return Convert.ToDecimal(_myDouble); }
set { _myDouble = Convert.ToDouble(value); }
}
...這似乎相當不愉快。我錯過了一個非常明顯的更好的方式來做到這一點?
我想你誤會了。我想取消映射步驟,只使用POCO EF,但是我想這樣做,而不必使用每個小數類型包含的難看的代碼。 – adhocgeek