Неожиданная пустая последовательность в результате linq to sql - PullRequest
1 голос
/ 12 апреля 2011

У меня есть простой запрос, который удаляет запись из таблицы

        CB_User_Schedule deleted = (from x in db.CB_User_Schedules
                                    where x.ScheduleID == CurrentScheduleID
                                    select x).Single();
        db.CB_User_Schedules.DeleteOnSubmit(deleted);
        db.SubmitChanges();

Однако первый оператор возвращает Sequence contains no elements. Я вижу, что когда он выполняет, значение CurrentScheduleID фактически является числом, а когда я непосредственно выполняю select * from CB_UserSchedules where ScheduleID = 3, оно возвращает строку. Так почему же мое утверждение не находит эту строку в базе данных?

1 Ответ

1 голос
/ 12 апреля 2011

Проверьте испускаемый SQL с помощью встроенного ведения журнала LINQ-to-SQL (подключите TextWriter к свойству Log в вашем DataContext) или профилировщика SQL.Скорее всего, у вас есть несоответствие типа данных или проблема с ключом в вашем DBML (то есть что-то не соответствует действительности в БД, и картографирует это).Мы работаем с очень большим и сложным сайтом почти исключительно на L2S, и подобные проблемы почти всегда связаны с нарушением работы DBML.

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