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 に答える