【问题标题】:Create a Dynamic Entity Framework Where Query创建一个动态实体框架 where Query
【发布时间】:2015-04-13 18:48:35
【问题描述】:

在运行时,我有一个“父”ID 的动态列表,我需要针对我的一个实体表进行查询,使用 LINQ 我将如何在运行时生成查询?目前我(非常缓慢)循环遍历我的 ID 列表并使用 Where 方法对数据库执行单独的查询。是否有一个 API 可以让我构建一个 WHERE 语句,本质上是附加“&& value = something”,就像我自己编写 SQL 一样?

目前我所做的看起来像这样

            foreach(var parent in parents)
        {
            col.AddRange(context.LocalAuthorities.Where(c => c.Parent.ID == parent.ID).ToList());
        }

【问题讨论】:

  • 请添加更多详细信息。您当前的查询是什么?
  • 将添加一个示例。

标签: linq entity-framework linq-to-entities


【解决方案1】:

如果您的目标是用 一个 查询替换 多个 迭代查询,您可以使用这种方法:

var allParentIds = parents.Select(p=>p.ID).ToList();
var result = context.LocalAuthorities.Where(c=> allParentIds.Contains(c.Parent.ID));

col.AddRange(result);

【讨论】:

  • 我不认为实体框架可以翻译 contains 方法调用。我知道这适用于 linq to objects,我会试试这个并回复你。 :)
  • 完美而简单,我想我应该在假设它不起作用之前检查一下。非常感谢!
猜你喜欢
  • 1970-01-01
  • 2010-10-06
  • 1970-01-01
  • 1970-01-01
  • 2016-05-22
  • 2011-07-29
  • 2011-07-15
  • 2013-03-15
  • 2011-05-11
相关资源
最近更新 更多