我有一些动态条件要在我的Select子句中使用。 因此,我想创建一个诸如“ SELECT * FROM TABLE”之类的“基础查询”,然后我想添加诸如“ WHERE name ='Diego'AND ...”之类的条件。 我正在使用Entity Core,发现的解决方案(正在运行)如下:
//conditions
Expression<Func<Person, bool>> foo = (p => p.Id == 1);
//select
List<Person> people = Db.People.Where(foo).ToList();
//Db is the context, People is the DbSet and Person is the model
我希望有一种简单或标准的方法,实际上我已经尝试了一些,但是没有用。
无论如何,从简单到复杂,我在哪里都能找到关于它的好教程?
----------------------更新------------------------ -----
好吧,这个问题被标记为重复,但是这个Multiple .Where() clauses on an Entity Framework Queryable不适用于我,我不知道为什么,但是该语句在条件之前执行(如果我做同样的事情,例如链接上的答案),我想在执行第一条语句之前应用条件。是的,我知道我必须在末尾使用toList(),无论如何,如果我在该链接上执行相同的操作(如答案),该语句将在之前执行,并且我同意这很奇怪。
----------------------更新------------------------ -----
在下面的图片中,我提供了某种证明:
这里我们执行一个语句(结果是一个Person对象),在这个示例中,我使用的是上面编写的代码。
在这里我们看到的代码是:即使没有方法 ToList(),在此示例中,我使用的是建议的代码。
也许这是一个实体核心错误。 无论如何,这个问题与由于许多原因而被链接的问题不同。