Я немного новичок, когда дело доходит до Linq to SQL, но я надеюсь, что вы можете помочь. Я написал следующий оператор Linq to SQL с методами расширения:
Cedb.ClassEvents.Where(c => c.ClassID == 1).Select(c => c).Single()
Где Cedb — это Datacontext, ClassEvents — это таблица (для классов и событий, проводимых на объекте), а ClassID — это уникальный целочисленный ключ.
Этот запрос отлично работает в LinqPad (без Cedb). Когда он возвращается, он говорит, что тип возвращаемого значения — «ClassEvent». В Intellisense в Visual Studio мне сообщается, что возвращаемый тип этого запроса — ClassEvent (создан в моей модели данных). Однако, когда я пытаюсь поместить результаты в переменную:
var classEvent = Cedc.ClassEvents.Where(c.ClassID == 1).Select(c => c).Single();
затем я получаю сообщение об ошибке: InvalidCastException: указанное приведение недействительно. То же самое произойдет, если я использую класс «ClassEvent» вместо var. Я новичок в этом, но это похоже на настоящий слэм-данк, а не на ошибку. Есть ли что-то в методе Single, о котором я не знаю, что приводит к ошибке? Любая помощь будет оценена по достоинству!