多表关联查询的问题

liang2819561 2014-12-26 10:45:17
假设有A【ID,User】、B【ID,CreateDate,AID】、C【ID,BID,Name】三个表,其中A跟B是一对多的关系,B跟C是一对一的关系。

其中B通过AID关系A表,C通过BID关联B。

现在想用linq做个查询所有A表中User为“xiaoming”并且到B中CreateDate最大的记录对应的C中的Name。


各位牛人帮忙看下怎么写?
...全文
120 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
不要胡乱使用笛卡儿积,学过数据库应用知识的人应该知道这个原则。
屎涂行者 2014-12-27
  • 打赏
  • 举报
回复
有问又问 2014-12-26
  • 打赏
  • 举报
回复
var q = from a in alist from b in blist from c in clist where a.User == "xiaoming" && a.AID==b.AID &&b.BID==c.BID orderby b.CreateDate descending select new { c.Name, b.CreateDate, a.User }; var m = q.FirstOrDefault();
liang2819561 2014-12-26
  • 打赏
  • 举报
回复
另外 from b in g.OrderByDescending(x=>x.CreateDate).First() 这样写有问题吧!
liang2819561 2014-12-26
  • 打赏
  • 举报
回复
嗯,谢谢版主。再请教一个问题,在分页之前能获得查询的总数不?我现在为了获得查询的总数做了两次查询一个是为了查记录数,另一个查分页的数据,总觉得这样不太好,有没有什么解决办法?
q107770540 2014-12-26
  • 打赏
  • 举报
回复
var data = (from a in context.WF_PROC_INSTS
                                join b in context.WF_MANUAL_WORKITEMS on a.PROC_INST_ID equals b.PROC_INST_ID into g
                                from b in g.OrderByDescending(x=>x.CreateDate).First()
                                where b.CurrentUser=="xiaoming"  
                                join c in context.WF_ACTIVITY_INSTS on b.ACTIVITY_INST_ID equals c.ID
                                orderby a.STARTED_DATE descending
                                select new { StartDate = a.STARTED_DATE}).Skip((entity.PageCount - 1) * entity.PageSize).Take(entity.PageSize);
liang2819561 2014-12-26
  • 打赏
  • 举报
回复
就是选择b中时间最近的一条数据。难道要再Select下吗?
liang2819561 2014-12-26
  • 打赏
  • 举报
回复
var data = (from a in context.WF_PROC_INSTS join b in context.WF_MANUAL_WORKITEMS on a.PROC_INST_ID equals b.PROC_INST_ID where b.CurrentUser=="xiaoming" && 这里怎么写 join c in context.WF_ACTIVITY_INSTS on b.ACTIVITY_INST_ID equals c.ID orderby a.STARTED_DATE descending select new { StartDate = a.STARTED_DATE}).Skip((entity.PageCount - 1) * entity.PageSize).Take(entity.PageSize);
q107770540 2014-12-26
  • 打赏
  • 举报
回复
你目前做了哪些尝试,比如写LINQ在哪里遇到了问题,或者SQL语句能写出来不
exception92 2014-12-26
  • 打赏
  • 举报
回复
贴出测试数据及结果。

8,497

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 LINQ
社区管理员
  • LINQ
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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