LINQ与OR搜索的关系是多少? [英] How LINQ many to many with OR search?
本文介绍了LINQ与OR搜索的关系是多少?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我具有以下表格结构:
表用户
ID | Name
1 | John
2 | Ted
3 | Alice
4 | Barney
和表UserLanguages
and table UserLanguages
ID | UserID | Language
1 | 1 | 1
2 | 1 | 5
3 | 2 | 2
4 | 2 | 3
5 | 3 | 3
6 | 4 | 4
7 | 4 | 5
我检查了语言 2,3 和 4 ,我想吸引用户:2,3,4. 我想让用户至少拥有某种选择的语言(或2或3或4) 如何使用LINQ?
I check languages 2,3 and 4 and I want to get users: 2,3,4. I want to get users who have at least something of chosen languages (or 2 or 3 or 4) How get with LINQ?
推荐答案
类似的方法应该起作用:
Something like this should work:
var query = from u in db.Users
join l in db.UserLanguages on u.ID equals l.UserID
group l.Language by u into langs
where langs.Any(l => l == 2 || l == 3 || l == 4)
select langs.Key;
我对使用谓词构建器的建议过于复杂. IEnumerable<T>.Contains()
显然适用于LINQ-to-SQL(我不知道).这应该容易得多.
My suggestion of using predicate builder is overly complicated. IEnumerable<T>.Contains()
apparently works in LINQ-to-SQL (which I didn't know). This should be much easier.
var languages = new[] { 2, 3, 4 };
var query = from u in db.Users
join l in db.UserLanguages on u.ID equals l.UserID
group l.Language by u into langs
where langs.Any(l => languages.Contains(l))
select langs.Key;
这篇关于LINQ与OR搜索的关系是多少?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文