这是我的linq查询从第一个集合获取数量和数量数量 - 第二个集合数量和第一个集合数量 - 第二个集合数量,有时候第一个集合RM不包含第二个集合
var summary = (from r in firstCollection
join s in secondCollection
on new { r.RM, r.Size } equals new { s.RM, s.Size }
group new { r, s } by new { RM = r.RM, Size = s.Size, Qty = (r.Qty - s.Qty), Number = (r.Number - s.Number) }
into grp
select new
{
RM = grp.Key.RM,
RMsize = grp.Key.Size,
Qty = grp.Key.Qty,
Number = grp.Key.Number
}).ToList();
有一个错误,如
附加信息:按表达式分组只能包含 服务器可比较的非常量标量。表达方式 使用类型' Manufacturing.DataAccess.tbl_RawMaterial'不是 可比性。
我该如何解决这个问题?
答案 0 :(得分:2)
您可以先投射到匿名类型,然后进行分组。试试这个:
var summary = (from r in firstCollection
join s in secondCollection
on new { r.RM, r.Size } equals new { s.RM, s.Size }
select new
{
RM = r.RM,
Size = s.Size,
Qty = (r.Qty - s.Qty),
Number = (r.Number - s.Number)
} into tmp
group tmp by new
{
RM,
Size,
Qty,
Number
} into grp
select new
{
RM = grp.Key.RM,
RMsize = grp.Key.Size,
Qty = grp.Key.Qty,
Number = grp.Key.Number
}).ToList();
答案 1 :(得分:1)
看起来问题是<div ng-class="getCSSClass(field.LongQuestion, field.TrueClass, field.DefaultClass)"></div>
成员,我假设它是 $scope.getCSSClass = function(class, trueClass, defaultClass) {
if(class)
return trueClass;
else
return defaultClass;
}
类型的一些导航属性。正如异常消息所述,您只能按简单属性进行分组。
假设您的实体RM
主键名为Manufacturing.DataAccess.tbl_RawMaterial
(您可以将其替换为实际名称)。然后查询可能是这样的
Manufacturing.DataAccess.tbl_RawMaterial