質問: (from order in context.Orders where (order.Key in orderKeys) select order).ToList(); Assert.AreEqual(orderKeys.Count, orders.Count); ``` いくつかの回答で述べたように*Contains*メソッドを使用しようとしましたが、うまくいかず、この例外がスローされます。 *LINQ to Entitiesはメソッド 'Boolean Contains [Int32](System.Collections.Generic.IEnumerable`1 [System.Int32]、Int32)'メソッドを認識しないため、このメソッドをストア式に変換することはできません。*
回答: ~~これを試して:~~ ``` var orderKeys = new int[] { 1, 12, 306, 284, 50047}; var orders = (from order in context.Orders where orderKeys.Contains(order.Key); select order).ToList(); Assert.AreEqual(orderKeys.Count, orders.Count); ``` **編集:**私はこの問題に対するいくつかの回避策を見つけました - WHERE IN句を見てください? : > Entity Frameworkは現在、コレクション値パラメーター(この例では 'statusesToFind')をサポートしていません。この制限を回避するには、次のユーティリティメソッドを使用して一連の値を指定して式を手動で作成します。 > >