以下は残虐行為かもしれないと感じています。それがうまくいかない理由かもしれません。だからここにいます、あなたの助けを求めています。:-)
また、この質問の編集を手伝ってください。適切なタイトルが何であるか、またはそれを定式化するためのより良い方法がわかりません. (もうお察しのとおり、英語は私の母国語ではありません)。
次のようなクラスを考えてみましょう:
public class Order
{
public int FareCode;
public int Quantity;
}
次に、次のような Linq クエリ:
var orders = new []{ new Order {...}, ...};
var fareCodes = orders.Select(o => o.FareCode).ToArray();
using(var dc = new datacontext())
{
var query = dc.Fares
.Where(f => fareCodes.Contains(f.FareCode))
.Select(f => new {
Fare = f,
Quantity = orders.Single(o => o.FareCode == f.FareCode).Quantity //<-- This is not right!
})
}
だからQuantity = Orders.Single(o => o.FareCode == f.FareCode).Quantity
正しくない。では、これを達成するための別のオプションは何でしょうか?
更新: 動作しない理由は、ランタイムがこの例外をスローするためです: ローカル シーケンスは、Contains() 演算子以外のクエリ演算子の LINQ to SQL 実装では使用できません