假设我有一些筛选条件,通过一组CustomerFilter对象传递给我的应用程序,我需要运行一个Linq to Entities查询,并根据这些过滤器返回结果。
因此,在这种情况下,客户将通过服务调用向我传递一组CustomerFilter对象。
筛选对象:
class CustomerFilter
{
public string CustomerID;
public int[] LocationID;
}
示例数据:
CustomerID LocationID
1 1
2
3
4
2 2
3
4
我可以很容易地按照外部CustomerID构建查询过滤器,如下所示。 < p > < em > 查询:
public void GetCustomerResults(List<CustomerFilter> accounts)
{
List<string> customer = (from a in accounts select a.CustomerID).ToList();
var locations = ctx.Portal_SurveyLocations
.Where(w => customer.Contains(w.CustNum))
.OrderBy(o => o.LocationKey);
}
我可以按照外部条件进行过滤,但是我不确定如何按每个CustomerID的多个位置ID进行过滤。显然,只使用OR子句会导致错误的结果,因为它会拉取具有匹配LocationIDs的其他CustomerIDs。
有什么想法可以在传入的CustomerFilter对象中实现这个多级过滤吗?
w
的变量:你在Where
lambda和a.LocationID.Any
中都有它,所以它会生成@PhilMurray的编译器错误。我相信这应该可以解决问题。 - Corey Adler