我根据请求编写了一个测试示例,显示了正确的语法,这一切都应该正常。
public class Data
{
public string CUSTOMER_NUMBER { get; set; }
public string CUSTOMER_NAME { get; set; }
}
public class NameList
{
public string CustomerId { get; set; }
}
public class InterCompanies
{
public string CustomerId { get; set; }
}
public class Test
{
public void TMP()
{
var data = new List<Data>();
var genericNameList = new List<NameList>();
var intercompanies = new List<InterCompanies>();
var commissions = data
.GroupJoin(genericNameList,
d => d.CUSTOMER_NUMBER,
g => g.CustomerId,
(d, g) => new { d, generic = g.FirstOrDefault() })
.GroupJoin(intercompanies,
dd => dd.d.CUSTOMER_NAME,
i => i.CustomerId,
(d, i) => new { data = d.d, intercompanies = i.FirstOrDefault() })
.ToList();
}
}
我最初的想法是你的客户号和客户名是错误的,因为你为什么在同一个类中有两个字段具有相同的值。但是,既然您向我保证了它们是正确的,那么也许您正在交换连接中数据上预期的字段的顺序,如果不看到您的数据模型,很难说清楚。
也许你的第二次加入应该是这样的:
.GroupJoin(intercompanies,
dd => dd.d.CUSTOMER_NUMBER,
i => i.CUSTOMER_NAME,