我需要以某种方式在我的EF查询中使用这个逻辑,这可能吗?
User
- salesCountUSA
- salesCountEurope
我的方法看起来像
public List<User> GetUsers(bool isUSA, int salesCount)
{
var users = from u in this.MyContext.Users
where ????
}
在代码中我会这样做:
int salesCount = isUsa ? salesCountUSA : salesCountEurope
我如何在EF中模仿这个?
答案 0 :(得分:2)
由于延迟执行,您可以有条件地构造查询:
var query = MyContext.Users.AsQueryable();
if(isUSA)
query = query.Where(user => user.salesCountUSA == salesCount)
else
query = query.Where(user => user.salesCountEurope == salesCount)
答案 1 :(得分:0)
您可以使用LET声明
var users = from u in this.MyContext.Users
let salesCount = u.isUsa ? u.salesCountUSA : u.salesCountEurope
where salesCount > 0