首页 .Net LINQ to Entities无法识别方法GetValueOrDefault()

LINQ to Entities无法识别方法GetValueOrDefault()

正常情况下在EF DB中是无法识别翻译GetValueOrDefault()、ToString()等方法的。需要我们自行扩展相关的方法进行操作。

方法一:

先进行toList()操作把结果集查询出来后,再进行筛选操作。

var find_date = bdb.tbl_store
        .Join(bdb.tbl_hour, a => a.start_hour_id, b => b.hour_id, (a, b) => new { a, b })
        .Join(bdb.tbl_hour, a => a.a.end_hour_id, b => b.hour_id, (a, b) => new { a, b })
        .Where(x => x.a.a.store_id == store_id )
        .ToList()
        .Select(x => new {
            x.a.a.store_id,
            start_hour_time = x.a.b.hour_time,
            end_hour_time = x.b.hour_time,
            start_newdatetime = todaysdate.Date + x.a.b.hour_time.GetValueOrDefault().TimeOfDay,
            end_newdatetime = todaysdate.Date + x.b.hour_time.GetValueOrDefault().TimeOfDay
    }).ToList();

方法二:

不使用GetValueOrDefault(),考虑从外部传入如

 (a.createtime??DateTime.MinValue).TimeOfDay


特别声明:本站部分内容收集于互联网是出于更直观传递信息的目的。该内容版权归原作者所有,并不代表本站赞同其观点和对其真实性负责。如该内容涉及任何第三方合法权利,请及时与824310991@qq.com联系,我们会及时反馈并处理完毕。