От: | Serginio1 | https://habrahabr.ru/users/serginio1/topics/ | |
Дата: | 15.04.16 17:22 | ||
Оценка: |
Итак, получим все модели из таблицы Companies:
using(PhoneContext db = new PhoneContext())
{
var comps = db.Database.SqlQuery<Company>("SELECT * FROM Companies");
foreach (var company in comps)
Console.WriteLine(company.Name);
}
Выражение SELECT извлекает данные из таблицы. Так как эта таблица сопоставляется с моделью Company и хранит объекты этой модели, то данный вызов типизируется классом Company: db.Database.SqlQuery<Company>()
Другая версия метода SqlQuery() позволяет использовать параметры. Например, выберем из бд все модели, которые в названии имеют подстроку "Samsung":
using(PhoneContext db = new PhoneContext())
{
System.Data.SqlClient.SqlParameter param = new System.Data.SqlClient.SqlParameter("@name", "%Samsung%");
var phones = db.Database.SqlQuery<Phone>("SELECT * FROM Phones WHERE Name LIKE @name",param);
foreach (var phone in phones)
Console.WriteLine(phone.Name);
}
Класс SqlParameter из пространства имен System.Data.SqlClient позволяет задать параметр, который затем передается в запрос sql.