我知道有很多问题。我已阅读它们,并且我为匿名类型属性创建了相同的名称和类型。我仍然在标题中收到错误。
代码是:
var v = (from o in dataContext.pp_orders.Where(p => p.ID > lastOrderID).OrderBy(p => p.DueDate)
join part in dataContext.pp_parts on o.ProductID equals part.ProductID
join op in dataContext.pp_operations on new { ID2 = part.ID } equals new { ID2 = (int)op.PartID }
select (x => new JobModel { o = o, op = op }));
错误发生在第二次加入。
[UPDATE]
似乎联接等于正确。此查询有效(无错误):
var v = (from o in dataContext.pp_orders.Where(p => p.ID > lastOrderID).OrderBy(p => p.DueDate)
join part in dataContext.pp_parts on o.ProductID equals part.ProductID
join op in dataContext.pp_operations on part.ID equals (int)op.PartID
select op);
问题在于select子句。我不明白为什么它会在select子句的标题中给出错误。
select (x => new JobModel { o = o, op = op })
答案 0 :(得分:1)
您正在混合查询语法和方法语法。方法语法使用lamdbas来投影数据,而查询语法使用更自然的类似sql的语法:
将您的选择更改为:
select new JobModel { o = o, op = op }