1
我正在使用POCOs(無代理)和EF4。EF4映射可爲空的十進制列爲非空值屬性
在數據庫中,我有這個可空小數列:
<Property Name="AMOUNT" Type="decimal" Precision="12" Scale="2" />
在我的POCO,我有這個不可爲空值屬性:
public decimal Amount { get; set; }
如果在數據庫中的值是null
,我希望該屬性設置爲0
。我怎樣才能做到這一點?我寧願不要在這裏擁有Nullable
屬性,否則我必須用GetValueOrDefault()
代碼污染我的業務邏輯。
[這question好像我是問什麼,但我不知道它是真的回答。]
「在EDMX的情況下,有一種可能的醜陋解決方法。」 - 這不是一個醜陋的解決方法,而是一種常見的做法。實體框架有很多限制,並且類文件有意生成爲部分文件,以便您可以添加任何您想要的文件。順便說一句 - 創建純數據類(沒有任何邏輯 - 就像EF生成的那樣)是一種反模式。 – kubal5003
@kubal:這是一種解決方法,因爲這種映射邏輯應該是ORM本身的一部分。此外,您的反模式僅存在於領域驅動設計的世界中,並被稱爲貧血域模型。如果你不遵循域驅動設計,你就沒有這種反模式。 –
你是對的,我的觀點是,因爲EF故意支持不能被認爲醜陋的部分類,但如果你看看整個設計,那麼這當然不是做事的優雅方式。 – kubal5003