这个查询似乎并不高兴.任何人的想法?
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
};
Run Code Online (Sandbox Code Playgroud)
我得到的错误是
"无效的匿名类型成员声明符.必须使用成员赋值,简单名称或成员访问声明匿名类型成员."
对于连接右侧的2列(即 b.Field<string>("COUNTYCODE")和b.Field<string>("StateCode")).
这只是一个C#语法问题,而不是LINQ本身.考虑以下:
var a = new { "1" }; // Error
var a = new { a = "1" }; // OK
Run Code Online (Sandbox Code Playgroud)
只是为了澄清,以下是上述结果:
on new { cc = a.CountyCode, sc = a.StateCode }
equals new { cc = b.Field<string>("COUNTYCODE"),
sc = b.Field<string>("StateCode") }
Run Code Online (Sandbox Code Playgroud)