首页 新闻 会员 周边 捐助

linq to ef数据过滤问题

0
悬赏园豆:10 [已解决问题] 解决于 2024-06-18 16:37

数据如下图

需要将StartTime在20分钟以内的只选择第一条数据

linq应该怎么写

---------------------------------------

我能想到的就是用Distinct进行去重,但是处理筛选后的结果时报错了

引发 NotSupportedException 异常,并显示以下消息:“无法创建类型为‘EntityType’的常量值。 此上下文中仅支持基元类型(‘如 Int32、String 和 Guid’)。”[Unable to create a constant value of type 'Closure type'. Only primitive types ('such as Int32, String, and Guid') are supported in this context.]

Dranched的主页 Dranched | 初学一级 | 园豆:24
提问于:2017-05-31 16:44
< >
分享
最佳答案
0
var  CheckTime =DateTime.Now.AddMinute(-20);
var list = Object.where(it=>it.StatrtTime>CheckTime)
                      .where(it=>it.StatrtTime<DateTime.Now)
                      .FirstOrDefault();
收获园豆:10
追随微笑 | 菜鸟二级 |园豆:227 | 2017-06-01 10:32
其他回答(7)
0

 你连LINQ代码咋写的都不舍得贴出来啊。

爱编程的大叔 | 园豆:30844 (高人七级) | 2017-05-31 17:00
0
1 testlist.Where(x => (x.EndTime - x.StartTime).Hours < 20).FirstOrDefault()
~扎克伯格 | 园豆:1923 (小虾三级) | 2017-05-31 17:02
0

楼上的可以尝试, 改一下不是小时,是分钟.  然后days 和 hours 都要加条件<0 仅供参考

筱浬 | 园豆:601 (小虾三级) | 2017-05-31 18:02
0

上面的where去掉

花飘水流兮 | 园豆:13615 (专家六级) | 2017-06-01 15:41
0

基础啊,你需要普及

空明流光 | 园豆:111 (初学一级) | 2017-06-01 17:07
0

用FirstOrDefault

var data=list.FirstOrDefault(f => (f.EndTime - f.StartTime).Hours < 20);

izan | 园豆:205 (菜鸟二级) | 2017-06-03 16:14
0

4楼正解.

黄昏MMM | 园豆:320 (菜鸟二级) | 2017-06-15 13:53
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册