当前位置:  开发笔记 > 编程语言 > 正文

实体框架可查询的多个.Where()子句

如何解决《实体框架可查询的多个.Where()子句》经验,为你挑选了1个好方法。

我正在尝试使用Entity Framework实现复杂的过滤器:我想where根据我提供的搜索条件向可查询对象添加子句.

我可以在Entity Framework 6中执行以下操作吗?

var queryable = db.Users.Where(x => x.Enabled && !x.Deleted);
// Filter
var userId = User.Identity.GetUserId();
queryable.Where(x => x.AspNetUser.Id == userId);
queryable.Where(x => x.Status >= 2); 
// ...etc

我知道我能做到:

var queryable = db.Users
 .Where(x => x.Enabled && !x.Deleted)
 .Where(x => x.AspNetUser.Id == userId)
 .Where(x => x.Status >= 2); 

但是我没有得到这个解决方案的预期结果.它似乎忽略了秒的两个where条款.



1> Vlad274..:

.Where返回一个可查询的,它不会修改原始的.所以你只需要保存新的可查询.

var queryable = db.Users.Where(x => x.Enabled && !x.Deleted);
// Filter
var userId = User.Identity.GetUserId();
queryable = queryable.Where(x => x.AspNetUser.Id == userId);
queryable = queryable.Where(x => x.Status >= 2); 
// ...etc

推荐阅读
linjiabin43
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有