Это просто проблема синтаксиса 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") }