1

我有下一个过滤 Double 值的 IQueryable:

var pQuery =
        (from c in db.TABLE
         select new
             {
                cDate = c.DATE,
                dMid = (double)c.MID,
             })
             .Where("dMid > 13.5");

当我看到 IntelliTrace 时,Linq 生成下一个查询:

select DATE, MID
from TABLE
where MID > cast(135 as float(53))

我不知道为什么 Linq 会删除小数点分隔符并将过滤器表达式从 13.5 转换为 135。

有人可以帮助我吗???

谢谢!!!!

4

1 回答 1

0

最后它比我想象的要容易。用户 lc。使用“f”字符给我解决方案

var pQuery =
    (from c in db.TABLE
     select new
         {
            cDate = c.DATE,
            dMid = (double)c.MID,
         })
         .Where("dMid > 13.5f");

..这被翻译成:

select DATE, MID
from TABLE
where MID > cast(13.5 as float(53))
于 2013-02-19T09:17:26.883 回答