WCF数据服务:多对多查询

发布于 2024-11-03 19:33:50 字数 545 浏览 5 评论 0原文

所以我有这样的数据库模型:

Student<->StudentClasses<->Classes

其中 1 个学生链接到许多 StudentClasses,一个 Class 链接到许多 StudentClasses。

如何编写 LINQ 查询来获取与 Id 1 的学生链接的所有课程?

以下查询引发异常 (“只能在上次导航后指定查询选项(orderby、where、take、skip)。”):

                     var qry = from sc in service.StudentClasses
                      where sc.StudentId == 1
                      from c in service.Classes
                      where c.ClassId == sc.StudentId
                      select c;

So I have this database model :

Student<->StudentClasses<->Classes

where 1 student is linked to many StudentClasses and one Class is linked to many StudentClasses.

How do I write a LINQ query to get all the classes linked to the student with Id 1 ?

the following query throws an exception
("Can only specify query options (orderby, where, take, skip) after last navigation.") :

                     var qry = from sc in service.StudentClasses
                      where sc.StudentId == 1
                      from c in service.Classes
                      where c.ClassId == sc.StudentId
                      select c;

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

坠似风落 2024-11-10 19:33:50

这可以工作,但如果你的 ID 为 DNE,则会崩溃。

var qry =  service.StudentClasses
              .Expand("Classes")
              .Where(x=>x.StudentId==1)
              .First()
              .Classes.Select(t=>t);

This would work, but it will crash if you the ID DNE.

var qry =  service.StudentClasses
              .Expand("Classes")
              .Where(x=>x.StudentId==1)
              .First()
              .Classes.Select(t=>t);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文