我有一种感觉,以下可能是暴行,也许这就是它不起作用的原因。所以我在这里,寻求你的帮助。:-)
另外请帮我编辑这个问题。我不知道什么是合适的标题或更好的表述方式。(就像你现在可能已经猜到的那样,英语不是我的母语)。
考虑一个像这样的类:
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
不对。那么实现这一目标的另一种选择是什么?
更新:它不起作用的原因是因为运行时抛出了这个异常:本地序列不能在查询运算符的 LINQ to SQL 实现中使用,除了 Contains() 运算符