创建动态 Entity Framework Where 查询
Create a Dynamic Entity Framework Where Query
在 运行 时,我有一个 "Parent" 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());
}
如果您的目标是用一个查询替换多个迭代查询,您可以使用这种方法:
var allParentIds = parents.Select(p=>p.ID).ToList();
var result = context.LocalAuthorities.Where(c=> allParentIds.Contains(c.Parent.ID));
col.AddRange(result);
在 运行 时,我有一个 "Parent" 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());
}
如果您的目标是用一个查询替换多个迭代查询,您可以使用这种方法:
var allParentIds = parents.Select(p=>p.ID).ToList();
var result = context.LocalAuthorities.Where(c=> allParentIds.Contains(c.Parent.ID));
col.AddRange(result);