Здравствуйте. Не так давно начал изучать entity framework и linq to sql. Не всё ещё понимаю. Пытаюсь сделать выборку вот таким вот запросом:
Subjects s = db.Subjects.Where(q => q.Name == comboBox1.Text);
Ругается:
'System.Linq.IQueryable' to 'Questioning.Models.Subjects'. An explicit conversion exists (are you missing a cast?)
Но при этом если делаю это всё в блоке foreach
, тогда всё нормально:
foreach(Subjects q in db.Subjects.Where(q => q.Name == comboBox1.Text))
{
}
В чём разница? Подскажите пожалуйста.
Subjects - это DbSet< YourType> .Он НЕ реализует интерфейс IQueryable. А в вашем коде происходит неявное приведение IQueryable< YourType > к DbSet< YourType >, отсюда и исключение. В таком случае вы можете сделать следующее:
1 Вариант:
var s = db.YourType.Where(q => q.Name == comboBox1.Text); // как по мне лучший вариант
2 Вариант:
IQueryable<YourType> = db.YourType.Where(q => q.Name == comboBox1.Text);
А что насчет foreach. Так в foreach(var item in YourCollection), item имеет тип элемента из коллекции, которую вы перебираете. Использую LINQ вы получаете на выходе IQuerylable или IEnumerable, которые поддерживает Foreach, что позволяет читать коллекцию, но тут важно помнить, что при использовании foreach нельзя добавлять или удалять элементы из коллекции внутри цикла, т.к это ломает итератор. Но это уже тема для другой статьи:)
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Существует массив из объектов-наследников класса Car: PassengerCar, FreightCar и SpecializedFreightCar
Всем привет! Допустим я хочу вывести данные после коннектора OleDbConnectionStringBuilderГде написать sql запрос и выполнить его значения?
Здравствуйте, товарищи! Уже давно мучаюсь с тем, что не могу ограничить обобщенные методы определёнными классамиИ вот вновь появилась такая...
Как сделать TabControl в стиле Materil DesignИспользую библиотеку MaterialDesignInXamltoolkit, но не понимаю, как на нем реализовать именно TabControl