[英]LINQ On DataTables With Multiple Conditions
这个查询似乎并不高兴。 任何人的想法?
var results = from a in previousQuery
join b in dtCounties.AsEnumerable()
on new { a.CountyCode, a.StateCode } equals new {
b.Field<string>("COUNTYCODE"),
b.Field<string>("StateCode")
}
where b.Field<bool>("TrueOrFalse") == true
select new
{
CountyCode = a.CountyCode,
TrueOrFalse= b.Field<bool>("TrueOrFalse"),
Sum= a.Sum
};
我得到的错误是
“无效的匿名类型成员声明符。必须使用成员赋值,简单名称或成员访问声明匿名类型成员。”
对于连接右侧的2列(即b.Field<string>("COUNTYCODE")
和b.Field<string>("StateCode")
)。
这只是一个C#语法问题,而不是LINQ本身。 考虑以下:
var a = new { "1" }; // Error
var a = new { a = "1" }; // OK
只是为了澄清,以下是上述结果:
on new { cc = a.CountyCode, sc = a.StateCode }
equals new { cc = b.Field<string>("COUNTYCODE"),
sc = b.Field<string>("StateCode") }
您需要将字段运算符的结果分配给命名属性。
尝试这个:
var results= from a in previousQuery
join b in dtCounties.AsEnumerable()
on new { CountryCode = a.CountyCode, StateCode = a.StateCode }
equals new
{ CountryCode = b.Field<string>("COUNTYCODE") ,
StateCode = b.Field<string>("StateCode") }
where b.Field<bool>("TrueOrFalse") == true
select new
{
CountyCode = a.CountyCode,
TrueOrFalse= b.Field<bool>("TrueOrFalse"),
Sum= a.Sum
};
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.