C# Linq到实体过滤掉默认参数
假设我有以下方法,其中需要填充insuredNumber,但其余三个参数可能包含以下默认值 方法签名: 然后,如何在结果Linq to Entites查询中忽略这些默认值?我尝试了以下方法,但返回的结果比预期的多,因为日期筛选不正确 查询:C# Linq到实体过滤掉默认参数,c#,.net,linq,linq-to-entities,.net-4.5,C#,.net,Linq,Linq To Entities,.net 4.5,假设我有以下方法,其中需要填充insuredNumber,但其余三个参数可能包含以下默认值 方法签名: 然后,如何在结果Linq to Entites查询中忽略这些默认值?我尝试了以下方法,但返回的结果比预期的多,因为日期筛选不正确 查询: 我想我可以将查询分解为子查询,检查默认值,但我想看看这是否可以在一个语句中完成。您最好将其分解: var query = ctx.Portal_SurveyRecommendations .Where(c => c.CustNum == ins
我想我可以将查询分解为子查询,检查默认值,但我想看看这是否可以在一个语句中完成。您最好将其分解:
var query = ctx.Portal_SurveyRecommendations
.Where(c => c.CustNum == insuredNumber);
if(surveyLocationNumber != -1)
query = query.Where(l => l.LocationKey == surveyLocationNumber);
if(dateIssuedFilter != DateTime.MinValue)
query = query.Where(di => di.DateRecIssued == null
|| di.DateRecIssued.Value > dateIssuedFilter);
if(dateCompletedFilter != DateTime.MinValue)
query = query.Where(dc => dc.DateRecComplete == null
|| dc.DateRecComplete.Value > dateCompletedFilter);
var surveys = query.OrderBy(o => o.ReportKey).ThenBy(o => o.RecNumKey).ToList();
我也这么想。谢谢你,马克。
surveyLocationNumber = "-1"
dateIssuedFilter = DateTime.MinValue
dateCompletedFilter = DateTime.MinValue
var surveys = ctx.Portal_SurveyRecommendations.
Where(c => c.CustNum.Equals(insuredNumber)).
Where(l => l.LocationKey.ToString().Equals(surveyLocationNumber)).
Where(di => di.DateRecIssued.Value > dateIssuedFilter || di.DateRecIssued.Value == null).
Where(dc => dc.DateRecComplete.Value > dateCompletedFilter || dc.DateRecComplete.Value == null).
OrderBy(o => o.ReportKey).ThenBy(o => o.RecNumKey).ToList();
var query = ctx.Portal_SurveyRecommendations
.Where(c => c.CustNum == insuredNumber);
if(surveyLocationNumber != -1)
query = query.Where(l => l.LocationKey == surveyLocationNumber);
if(dateIssuedFilter != DateTime.MinValue)
query = query.Where(di => di.DateRecIssued == null
|| di.DateRecIssued.Value > dateIssuedFilter);
if(dateCompletedFilter != DateTime.MinValue)
query = query.Where(dc => dc.DateRecComplete == null
|| dc.DateRecComplete.Value > dateCompletedFilter);
var surveys = query.OrderBy(o => o.ReportKey).ThenBy(o => o.RecNumKey).ToList();