2013-02-07 58 views
0

有趣的一個。.NET EF - 劃分一個字節字段的結果是一個int而不是兩個

請參見下面的實體框架查詢:

Entities.Select(x => new 
{ 
    x.ExperienceMonths, 
    Calculated = (x.ExperienceMonths > 0 ? x.ExperienceMonths/12 : 0) 
}) 

ExperienceMonths是在數據庫中,這意味着它在EF模型byte一個tinyint

我期望Calculated列是一個doublefloat),因爲我們分了一些,但無論我做什麼,它總是最終的int和結果的任何decimal部分被簡單地刪除,所以對於前3.7結束了3.

有沒有辦法強制EF將結果以某種方式轉換爲double?在分割表達式在運行時中斷之前添加(double)強制轉換。

使用EF5。

謝謝!

+0

您是否嘗試過使用'Convert.ToDouble()'? –

+0

感謝您的回覆!是的..同樣的錯誤。 – justabuzz

+1

您是否嘗試過:'x.ExperienceMonths * 1.0m/12.0m:0.0m' - 您目前所做的是**整數**部分,並按設計和預期工作。 –

回答

0

我只是想:

Calculated = (x.ExperienceMonths > 0 ? ((double)x.ExperienceMonths)/12 : 0) 

它工作得很好

+0

謝謝!是的,我不知道我是如何錯過這一點的。我想太多的試驗和錯誤..我確信我嘗試過投... ... 再次感謝! – justabuzz

相關問題