MVC-- 使用LINQ联合查询多表结果集的返回

happyredhill 2010-02-19 03:59:36
例如:
两个表Dinner,RSVP。Dinner中存存储时间、主人等,RSVP中仅存储受邀人

我想得到登陆用户的邀请,即是要两个表连接查询DinnerID相等。
问题:
1. 多表查询如何返回结果集,使用MVC做的 。。?
2. 在视图中如何得到查询的值?

搜索的方法:
1.数据层:
public IEnumerable<TInvitation> FindInvitationByAuthor<TInvitation>(Func<RSVP, IEnumerable<Dinner>, TInvitation> Invitation)
{
string userName = "test";

return from rsvp in _db.RSVPs
let dinners = from dinner in _db.Dinners
where rsvp.DinnerID == dinner.DinnerID
select dinner
where rsvp.AttendeeName == userName
select Invitation(rsvp,dinners);

}

2.逻辑层:
var allInvitation = _dinnerRepository.FindInvitationByAuthor((rsvps,dinners) =>
new {Rsvps = rsvps,
Dinners = dinners.ToList()});
因为要同时传递两个结果集,一个是登录人创建的Dinner,另外一个就是上面的多表查询结果集,我就重新写了个类,想把这两个类同时传到视图中。这地方一直没搞对
给个实例谢谢!!!!!!!!!!!!!!
...全文
1033 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
meguoling 2012-07-06
  • 打赏
  • 举报
回复
var q =
from e in db.Employees
join o in db.Books on e.EmployeeID equals o.EmployeeID into b
from x in b.DefaultIfEmpty()
select new
{
e.ID,
e.Name,
o.BookName
};


老兄,请问个问题 ,这样q 没有实体类,用什么作载体将它传到前台页面去
happyredhill 2010-02-19
  • 打赏
  • 举报
回复
怎么传到视图上呢?主要是我要传递两个数据集到视图上,如下:

1) My Dinners列表显示登陆用户创建的Dinner,显示dinner title, dinner date列,
点击title可以导向detail页面

2) Invitations列表显示邀请登陆用户的邀请, 显示dinner title, dinner host, dinner date, status列, 点击title可以导向detail页面(这个列表包括就要在两个表中搜索了)

如何传递?最好给个实例,谢谢!!!!!
wuyq11 2010-02-19
  • 打赏
  • 举报
回复
var q =
from e in db.Employees
join o in db.Books on e.EmployeeID equals o.EmployeeID into b
from x in b.DefaultIfEmpty()
select new
{
e.ID,
e.Name,
o.BookName
};
happyredhill 2010-02-19
  • 打赏
  • 举报
回复
http://www.cnblogs.com/songsh96/archive/2009/02/19/1393677.html就是参考这个网址的方法,可是在新建类中如何传递就出问题了,类型不确定。

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧