如何做一个WHERE ...在... Linq中的条款到SQL?
-
11-07-2019 - |
题
多多包涵,我开始:我怎样才能在
选择使用WHERE多重元素......在......这类条款select * from orders where orderid in (1, 4, 5)
在LinqToSql?我不希望有一个lambda表达式,因为他们吓唬我。由于事先!
解决方案
LINQ已经“包含”,这是象“IN”,但圆表示的其他方式。 - 中的元素不是“在”的一组,一组“中包含”的元素
int[] validIds = { 1, 4, 5 };
var query = from order in db.Orders
where validIds.Contains(order.Id)
select order
这是更简单地表示(IMO)用的λ虽然:
int[] validIds = { 1, 4, 5 };
var query = db.Orders.Where(order => validIds.Contains(order.Id));
我知道lambda表达式是“新”,因此吓人在一定程度上,但它确实值得抓住他们,用双手握持。他们是可爱的。
其他提示
int[] arry = new int[] {1,4,5};
var q = from r in orders
where Array.IndexOf(array, orderid) != -1
select r;
或
List<int> lst = new List<int>(new int[] {1,4,5});
var q = from r in orders
where lst.Contains(orderid);
select r;
不隶属于 StackOverflow