创建动态实体框架查询位置

时间:2015-04-13 18:48:36

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

在运行时,我有一个动态的“父”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());
        }

1 个答案:

答案 0 :(得分:1)

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

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

col.AddRange(result);