0

興味深いものです。

次の Entity Framework クエリを参照してください。

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

ExperienceMonthstinyintデータベース内のbyteです。つまり、EF モデル内の です。

Calculated数値を除算しているので、列はdouble( ) であると予想されますがfloat、何をしても常ににintなりdecimal、結果の一部が単純に削除されるため、ex 3.7 の場合は 3 になります。

何らかの方法で EF に結果を変換させる方法はありdoubleますか? double実行時に除算式が壊れる前に( ) キャストを追加します。

EF5を使用。

ありがとう!

4

1 に答える 1

0

私はちょうど試しました:

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

そしてそれはうまくいきました

于 2013-02-07T08:33:15.267 に答える