我创建了两个实体并且它们具有导航属性。
var list = from u in storeDB.Users
join a in storeDB.Accounts
on u.Id equals a.Id
select new { u, a };
如果我做了
foreach( user in list){
<span>user.Name, user.Money</span>
}
它不起作用。我的问题是如何显示两个表的结果属性中的内容,即连接??
Users: has Name, Id
Accounts: has Id, Money
答案 0 :(得分:0)
匿名对象上的属性为u
和a
,因为您已将它们命名为。你可能想给他们更好的名字,或者更好的是,只需选择你感兴趣的属性。我会给他们明确的名字,但你可以省略,如果你想要的名称与属性名称相同,并且没有任何冲突。
var list = from u in storeDB.Users
join a in storeDB.Accounts
on u.Id equals a.Id
select new { Name = u.Name, Money = a.Money };
然后将它们用作
foreach( user in list){
<span>user.Name, user.Money</span>
}
答案 1 :(得分:0)
答案 2 :(得分:0)
我怀疑您在MVC视图中使用它,因此您需要为组合的用户和帐户对象创建一个视图模型,并在模型中发送一个Enumerable。
public class UserAccountVM{
public Account Acct { get; set; }
public User Usr { get; set; }
}
然后在你的查询中执行以下操作:
var list = from u in storeDB.Users
join a in storeDB.Accounts
on u.Id equals a.Id
select new UserAccountVM { Usr = u, Acct = a };
将列表作为模型传递。您的观点应该是强类型的; IEnumerable<UserAccountVM>
应该有效。然后在您的视图中执行此操作:
foreach( user in list){
<span>user.Usr.Name, user.Acct.Money</span>
}