2

我有以下查询

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”赋予不同的含义,后者已在“子”范围中用于表示其他内容。

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

foreach(客户中的客户)

4

2 回答 2

8

为什么你有这条线:

select customer, assoc;

您是要退回客户、同事还是两者兼而有之?假设是后者,您可以使用匿名类型将它们组合起来:

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

然后每个项目customers都有两个属性,CustomerAssoc可以从中获取你需要的东西。

于 2012-05-30T20:50:19.383 回答
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};
于 2012-05-30T20:51:04.283 回答