LINQ内部连接 ​​- 从两个表返回

时间:2012-05-30 20:45:21

标签: c# linq inner-join

我有以下查询

var customers = from customer in context.tblAccounts 
                join assoc in context.tblAccountAssociations on customer.AccountCode equals assoc.ChildCode 
                where customer.AccountType == "S" || customer.AccountType == "P" 
                select customer, assoc;

C#不喜欢最后的“assoc”。

我的错误信息是:

名为'assoc'的局部变量不能在此范围内声明,因为它会给'assoc'赋予不同的含义,'assoc'已在'child'范围内用于表示其他内容。

我需要从两个表中返回所有列,然后使用

进行迭代

foreach(客户中的客户)

2 个答案:

答案 0 :(得分:8)

为什么你有这一行:

select customer, assoc;

您是在尝试退回客户,关联还是两者?假设后者,您可以使用匿名类型组合它们:

select new { Customer = customer, Assoc = assoc };

然后customers中的每个项目都会有两个属性CustomerAssoc,您可以从中获取所需内容。

答案 1 :(得分:0)

您可以用匿名类型包装这两个项目。

var customers = from customer in context.tblAccounts 
            join assoc in context.tblAccountAssociations on customer.AccountCode equals assoc.ChildCode 
            where customer.AccountType == "S" || customer.AccountType == "P" 
            select new {customer, assoc};