Как я могу заставить этот запрос LinqToSQL работать? (SqlExecption) - PullRequest
0 голосов
/ 03 июня 2010

Следующий код дает мне исключение 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))" Есть идеи?

Оригинальный вопрос об Аардварке:

Как мне выполнить запрос LinqToSQL, который дает мне это: я хочу выбрать все студенты, которые посещали определенный урок. Урок от определенного курс. Так что выберите курс урок от. Теперь выберите все студенты, которые следуют этому курс. Существует много ко многим отношения между студентами и таблица курсов в моей БД. я уже расширил мои сущности LINQ, чтобы иметь возможность выбрать студента. Курсы и Конечно. Студенты, использующие этот метод: http://www.codeproject.com/KB/linq/linq-to-sql-many-to-many.aspx

Ответы [ 4 ]

0 голосов
/ 03 июня 2010

Я не уверен ... но вы можете попробовать это:

var xxx = dc.Include ("studentCourses") .studentsCourses .Where (x => x.course == theCourse) .Select (x => x.student) .ToList ();

0 голосов
/ 03 июня 2010

Вы можете начать отладку этой проблемы, визуализировав запрос, сгенерированный LinqToSQL. Гу написал об этом пост в блоге некоторое время назад: http://weblogs.asp.net/scottgu/archive/2007/07/31/linq-to-sql-debug-visualizer.aspx

Просто скопируйте / вставьте запрос в ваше любимое приложение для управления базами данных и запустите его для базы данных. Должно стать понятно, в чем ошибка. Если все еще происходят какие-то безумные вещи, просто обновите свой вопрос?

Надеюсь, это поможет!

0 голосов
/ 03 июня 2010

Сначала проверьте вашу базу данных, чтобы увидеть, есть ли на самом деле таблица или имя для просмотра studentCourses. Если есть, попробуйте восстановить файл dbml, а затем повторите попытку.

0 голосов
/ 03 июня 2010

Ваша ссылка на классы sql не соответствует вашей схеме БД, или ваша БД не содержит таблицу или представление с именем studentcourses. Вам нужно настроить либо ваши классы, либо базы данных, чтобы они соответствовали.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...