从单独的列添加Entity Framework中的日期时间和时间
我想得到所有尚未结束的事件
select * FROM [Events] where EndDate+cast(EndTo as datetime)>GETDATE()
这是完美的。
这是我的价值( EndTo: 11:00:00.0000000, END DATE: 2016-05-26
)
我试过用
var list = dbContext.Events .Where(e => e.EndDate + e.EndTo > DateTime.Now) .ToList();
而且我收到了一个错误
DbArithmeticExpression参数必须具有数字公共类型。
如何在Entity Framework中编写此查询?
这是因为您尝试使用TimeSpan
添加DateTime
,这是不允许的。 为此,请尝试使用类似DateTime.AddSeconds(TimeSpan.TotalSeconds)
:
var list= dbContext.Events .Where(e=>e.EndDate.AddSeconds(e.EndTo.TotalSeconds) > DateTime.Now) .ToList();
或者,如果这是LINQ to Entities:
var list= dbContext.Events .Where(e=>EntityFunctions.AddSeconds(e.EndDate, e.EndTo.TotalSeconds) > DateTime.Now) .ToList();
编辑:
由于您的e.EndTo
是Nullable
,因此您应该使用其Value
:
var list= dbContext.Events .Where(e=>e.EndDate.AddSeconds(e.EndTo.Value.TotalSeconds) > DateTime.Now) .ToList();
要么
上述就是C#学习教程:从单独的列添加Entity Framework中的日期时间和时间分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
var list= dbContext.Events .Where(e=>EntityFunctions.AddSeconds(e.EndDate, e.EndTo.Value.TotalSeconds) > DateTime.Now) .ToList();
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/959543.html