0

Entityフレームワークの2つのフィールドの差として期間を選択する方法。以下は、対応する SQL クエリです。

SELECT InitiateTime, StartTime, EndTime, Ano,Bno,  datediff(s,StartTime,EndTime) as duration
FROM [NEPALIVR2].[dbo].[CDR]
WHERE StartTime >= startDate and StartTime <= endDate order by StartTime desc

リンク

from u in db.CDRs 
where u.InitiateTime >= startDate && u.InitiateTime <= endDate 
orderby u.InitiateTime descending 
select new
{
   InitiateTime = u.InitiateTime,
   StartTime = u.StartTime,
   EndTime = u.StartTime,
   Ano = u.Ano,
   Bno = u.Bno,
   Duration = (SqlFunctions.DateDiff("mi", u.StartTime, u.EndTime))/360,
};

これはエラーを返します:

'System.Linq.IQueryable<AnonymousType#1>'タイプを に暗黙的に変換することはできません'System.Linq.IQueryable<IVRControlPanel.Models.CDR>'。明示的な変換が存在します (キャストがありませんか?)

4

1 に答える 1

2

あなたの問題は差分計算ではないように見えますが、匿名型ではクエリから返されます。CDRオブジェクトに変更します。

select new CDR
{
   InitiateTime = u.InitiateTime,
   StartTime = u.StartTime,
   EndTime = u.StartTime,
   Ano = u.Ano,
   Bno = u.Bno,
   Duration = SqlFunctions.DateDiff("mi", u.StartTime, u.EndTime)/360
});
于 2013-02-27T06:17:44.127 に答える