C# LINQ to实体-查询中的Where IN子句
可能的重复项:C# LINQ to实体-查询中的Where IN子句,c#,sql,entity-framework,C#,Sql,Entity Framework,可能的重复项: 如何在语句中添加WHERE,如 SELECT * FROM myTable WHERE ID IN (1,2,3,4,5) 在实体框架中使用包含: int[] ids = { 1, 2, 3, 4, 5}; var query = db.myTable.Where(item => ids.Contains(item.ID)); 或在查询语法中: int[] ids = { 1, 2, 3, 4, 5}; var query = from item in db.m
如何在语句中添加WHERE,如
SELECT * FROM myTable WHERE ID IN (1,2,3,4,5)
在实体框架中使用
包含
:
int[] ids = { 1, 2, 3, 4, 5};
var query = db.myTable.Where(item => ids.Contains(item.ID));
或在查询语法中:
int[] ids = { 1, 2, 3, 4, 5};
var query = from item in db.myTable
where ids.Contains(item.ID)
select item;
我想答案就在这条线上
Array a = {1,2,3,4,5}
...WHERE a.Contains(ID)
当然,Jon Skeet给出了最好的答案。他是第一个!我想知道他是怎么做到的,真的。:-)@乔恩·斯基特,谢谢。但我有个问题。我相信你能解决这个问题。也就是说,当ids从另一个表模式中提取并且包含数百万数据时,我无法加快速度。相比之下,它的速度要慢一些。这是我的想法还是编译器通过管理内部索引/其他复杂算法来提供最佳优化运行时间?请回答,我现在就需要它。@MuhammadAshikuzzaman:在这种情况下,您应该使用联接来代替。另一件事是,如果ids是另一个模型列表,那么我就不能使用.Contains函数。在lambda表达式中检查.Contains的方法是什么?谢谢:)@MuhammadAshikuzzaman:现在你真的应该问另一个问题,以及所有相关的细节。(同样,听起来你应该使用join…)谢谢。这里我有一个问题。请看。