如何改进此查询?

时间:2010-01-20 17:07:29

标签: linq

我正在使用LINQ编写查询 - 一个查询显示所有活跃客户,另一个查询显示所有活跃客户和非活动客户。

 if(showall)
 {
   var prod = Dataclass.Customers.Where(multiple factors ) (all inactive + active)
 }
 else
 {
   var prod = Dataclass.Customers.Where(multiple factors & active=true) (only active)
 }

我可以只使用一个查询吗?问题是,在两个查询中都会重复多个因素

感谢

4 个答案:

答案 0 :(得分:3)

var customers = Dataclass.Customers.Where(multiple factors);
var activeCust = customers.Where(x => x.active);

我真的不明白这个问题。我不想让它成为一个单行,因为它会使代码不可读

答案 1 :(得分:1)

我假设您正在努力减少往返次数?

如果“多个因素”相同,您可以在第一次查询后过滤活跃用户:

var onlyActive = prod.Where(p => p.active == true);

答案 2 :(得分:0)

您是否只是使用您的第一个查询来返回所有客户?如果不是,你将两次返回活跃用户。

答案 3 :(得分:0)

我考虑的选项

  • 为所有客户提供一次,按“状态”列排序,以便轻松将其拆分为两套
  • 专注于最小化数据库往返。无论你在前端做什么,都要花费比进入数据库要少一个数量级。
  • 修改用户要求。对于前者考虑对结果进行分页 - 最终用户不太可能同时需要所有客户。