我有以下查询
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(客户中的客户)
答案 0 :(得分:8)
为什么你有这一行:
select customer, assoc;
您是在尝试退回客户,关联还是两者?假设后者,您可以使用匿名类型组合它们:
select new { Customer = customer, Assoc = assoc };
然后customers
中的每个项目都会有两个属性Customer
和Assoc
,您可以从中获取所需内容。
答案 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};