我的sql数据库不包含故障代码所有者,这些详细信息存储在xml文件中。当该数据来自外部源时,是否可以对Groupby FaultCodeOwner进行处理?

我收到以下错误:无法将void分配给匿名类型属性

        var query = referenceDt.AsEnumerable()
            .Where(results => declarations.CaapcityIssues.Contains((results.Field<string>("FabricName"))))
            .GroupBy(results => new
            {
                **FaultCodeOwner = faultCodeDetails.getFacultCodeOwner(results.Field<int>("FaultCode"), out owner)**
            })
            .OrderBy(newFaultCodes => newFaultCodes.Key.FaultCodeOnwer)
            .Select(newFaultCodes => new
            {
                FaultCodeOwner = newFaultCodes.Key.FaultCodeOwner,
                Count = newFaultCodes.Count()
            });

最佳答案

GroupBy方法更改为此:

.GroupBy(results =>
{
    FaultCodeOwnerType faultCodeOwner; // rename FaultCodeOwnerType to the type of FaultCodeOwner
    faultCodeDetails.getFacultCodeOwner(results.Field<int>("FaultCode"), out faultCodeOwner);
    return new
    {
        FaultCodeOwner = faultCodeOwner
    };
})


faultCodeDetails.getFacultCodeOwner返回void,因此您不能为其分配变量。您必须首先声明一个FaultCodeOwner类型的变量,然后将其作为out参数传递给getFacultCodeOwner,后者将为您分配该变量。

10-08 13:27