选择计算字段
本文关键字:字段 计算 选择 | 更新日期: 2023-09-27 18:01:24
如何选择持续时间作为实体框架中两个字段之间的差异。以下是相应的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
LINQ
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>'
。存在显式转换(您是否缺少强制类型转换?)
看起来您的问题不是差异计算,而是从查询返回的匿名类型。修改为CDR
object:
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
});