Linq To SqlでWHERE…IN…句を実行する方法
-
11-07-2019 - |
質問
始めましょう:WHERE ... IN ...タイプの句を使用して複数の要素を選択するにはどうすればよいですか
select * from orders where orderid in (1, 4, 5)
LinqToSqlで?私は、ラムダ式が怖いので、ラムダ式を持たないことを望みます。事前に感謝します!
解決
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));
ラムダは「新しい」ことを認識しています。したがって、ある程度は怖いですが、両手でそれらをつかむことは本当に価値があります。彼らは素敵です。
他のヒント
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