我想从一个容器中获取不存在于另一个容器中的物品。一个容器是IEnumerable,另一个是DB中的实体。例如
IEnumberable<int> ids = new List<int>();
ids.Add(1);
ids.Add(2);
ids.Add(3);
using (MyObjectContext ctx = new MyObjectContext())
{
var filtered_ids = ids.Except(from u in ctx.Users select u.id);
}这种方法可以工作,但我意识到底层的sql类似于SELECT id FROM [Users]。这不是我想要的。改到
var filtered_ids = ids.Except(from u in ctx.Users
where ids.Contains(u.id)
select u.id);改进底层查询并添加WHERE [id] IN (...),这似乎是一种更好的方法。
我有两个问题:
IN中有一个限制参数。如果我超过了限制(这不太可能发生,但最好做好准备),我的当前查询是否有效?发布于 2010-11-04 19:10:31
。
https://stackoverflow.com/questions/4097805
复制相似问题