linq to sql级联查询出错

fengxuemofa6 2011-12-16 09:48:59
麻烦大家帮我看看这个Linq有什么错误。。刚学,新手求教,。它直接死循环了,本来有200条数据查询了100W条还在查。
return from a in db.A
from b in db.B
from c in db.C
from d in db.D
join a in db.A on a.StudentId equals B.UserID
join d in db.D on d.GeradeID equals C.VID
join d in db.D on d.SubjectID equals C.VID
select new A_Ext
{
Title = a.Title,
UserName=b.UserName,
GeradeName=c.Name,
SubjectName=c.Name,
ViewCount=a.ViewCount,
ReflashTime=a.ReflashTime,
IsValid=a.IsValid
};
...全文
83 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
claymore1114 2011-12-16
  • 打赏
  • 举报
回复
一个一个 join 查考 猫哥的
快溜 2011-12-16
  • 打赏
  • 举报
回复
没关联就会笛卡尔积,产生很多数据,感觉你写的没什么意义
q107770540 2011-12-16
  • 打赏
  • 举报
回复
Try:

return from a in db.A
join b in db.B on a.StudentId equals b.UserID
join d in db.D on new{X=d.GeradeID , Y=d.SubjectID }equals new{X=c.VID,Y=c.VID}
select new A_Ext
{
Title = a.Title,
UserName=b.UserName,
GeradeName=c.Name,
SubjectName=c.Name,
ViewCount=a.ViewCount,
ReflashTime=a.ReflashTime,
IsValid=a.IsValid
};
Times_ORZ 2011-12-16
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 ssp2009 的回复:]

return from a in db.A
from b in db.B
from c in db.C
from d in db.D
join a in db.B on a.StudentId equals B.UserID
join d in db.C on d.GeradeID equals C.VID
join d in db.C on d.Subjec……
[/Quote] + 1
fengxuemofa6 2011-12-16
  • 打赏
  • 举报
回复
对,没关联,我爱罗那个正确?
fengxuemofa6 2011-12-16
  • 打赏
  • 举报
回复
上面2个大神,,哪个是正确得。。
快溜 2011-12-16
  • 打赏
  • 举报
回复
不对吧a,b和c,d之间没有关联
jiuhexuan 2011-12-16
  • 打赏
  • 举报
回复
一个一个加join吧
快溜 2011-12-16
  • 打赏
  • 举报
回复
return from a in db.A
from b in db.B
from c in db.C
from d in db.D
join a in db.B on a.StudentId equals B.UserID
join d in db.C on d.GeradeID equals C.VID
join d in db.C on d.SubjectID equals C.VID
q107770540 2011-12-16
  • 打赏
  • 举报
回复
你这是Cross join了


return from a in db.A
join b in db.B on a.StudentId equals b.UserID
join c in db.C on b.GeradeID equals c.VID
join d in db.D on d.SubjectID equals c.VID
select new A_Ext
{
Title = a.Title,
UserName=b.UserName,
GeradeName=c.Name,
SubjectName=c.Name,
ViewCount=a.ViewCount,
ReflashTime=a.ReflashTime,
IsValid=a.IsValid
};

8,497

社区成员

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

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