.NET EF-将字节字段除以整数而不是双精度

.NET EF-将字节字段除以整数而不是双精度,.net,entity-framework,.net,Entity Framework,有趣的一个 请参见以下实体框架查询: Entities.Select(x => new { x.ExperienceMonths, Calculated = (x.ExperienceMonths > 0 ? x.ExperienceMonths / 12 : 0) }) 在数据库中,ExperienceMonths列是一个tinyint,这意味着在EF模型中它是一个byte 我希望computed列是一个double(float),因为我们在除一个数字,但不管我怎

有趣的一个

请参见以下实体框架查询:

Entities.Select(x => new
{
    x.ExperienceMonths,
    Calculated = (x.ExperienceMonths > 0 ? x.ExperienceMonths / 12 : 0)
})
在数据库中,
ExperienceMonths
列是一个
tinyint
,这意味着在EF模型中它是一个
byte

我希望
computed
列是一个
double
float
),因为我们在除一个数字,但不管我怎么做,它总是以一个
int
结束,结果的任何
十进制部分都被简单地删除,因此对于ex3.7,结果都是3

有没有办法强制EF以某种方式将结果转换为双精度?在除法表达式在运行时中断之前添加(
double
)强制转换

使用EF5

谢谢

我刚刚试过:

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

它工作得很好

您是否尝试过使用
Convert.ToDouble()
?谢谢您的回复!对相同的错误。您是否尝试过:
x.ExperienceMonths*1.0m/12.0m:0.0m
-您当前正在做的是整数除法,并按照设计和预期工作。所有都是真的,LINQPad批准此处建议的所有强制转换,但在应用程序中针对DB运行时仍然如此(意思是SQL提供程序将这个合法的LINQ表达式转换为SQL)这就是它失败的时候。错误总是这样的:内部.NET Framework数据提供程序错误1004,0,命令中使用的不可解析变量:VarType=Column,Id=1174。那么这是哪个SQL提供程序?显式转换为double(by
(double)
)与sql server和EF一起工作。谢谢!是的,我不知道我怎么会错过这个。我猜有太多的尝试和错误。我确信我尝试了那个演员阵容…:)再次感谢!