如何使这个Linq To SQL查询工作? (SQLEXCEPTION)

时间:2010-06-03 09:02:43

标签: c# linq-to-sql

以下代码给出了一个SqlException:无效的对象名称'dbo.studentsCourses'

OO theCourse = subject.Course;
var students = dc.studentsCourses.Where(x => x.course == theCourse).Select(x => x.student);

我尝试了以下代码,但我也得到了一个例外。 我在Aardvark问了我的原始问题,可以在下面看到:

var allStudents = from s in dc.students select s;
List thestudents = new List();
foreach (student s in allStudents)
{
     if (s.courses.Contains(theCourse))
     {
     thestudents.Add(s);
     }
}

我在我的dbml上右键单击“运行自定义工具”并检查了我的表和实体的名称。项目编译,但我在运行时在这一行得到一个异常: “if(s.courses.Contains(theCourse))” 有什么想法吗?

关于Aardvark的原始问题:

  

如何进行LinqToSQL查询   给我这个:我想选择所有   参加过某些学生的学生   课。这一课是从某个方面来的   课程。所以选择课程吧   课程来自。现在选择所有   正在关注那些的学生   课程。有多对多   学生和学生之间的关系   我的数据库中的课程表。我已经   扩展我的LINQ实体能够   选择学生。课程和   course.Students使用这种方法:   http://www.codeproject.com/KB/linq/linq-to-sql-many-to-many.aspx

4 个答案:

答案 0 :(得分:0)

指向sql类的链接与db模式不匹配,或者db不包含名为studentcourses的表或视图。您需要调整类或数据库以使它们匹配。

答案 1 :(得分:0)

您可以通过可视化LinqToSQL生成的查询来开始调试此问题。 Gu不久前写了一篇博文: http://weblogs.asp.net/scottgu/archive/2007/07/31/linq-to-sql-debug-visualizer.aspx

只需将查询复制/粘贴到您喜欢的数据库管理应用程序中,然后针对数据库运行它。应该清楚错误是什么。如果还有一些疯狂的事情发生,请更新你的问题吗?

希望这有帮助!

答案 2 :(得分:0)

首先检查您的数据库,看看是否真的有一个表或视图名称studentsCourses。 如果有,则尝试重新生成dbml文件,然后再试一次。

答案 3 :(得分:0)

我不确定......但你可以试试这个:

var xxx = dc.Include(“studentsCourses”) .studentsCourses .Where(x => x.course == theCourse) 。选择(x => x.student) .ToList();