Книга: ASP.NET MVC Framework
LINQ для SQL
LINQ для SQL
Работа с LINQ для SQL на платформе .NET Framework осуществляется с помощью классов пространства имен System.Linq и System.Data.Linq.
Перечислим основные классы этих пространств имен.
? System.Linq:
• Enumerable
— предоставляет набор статичных методов для работы с объектами, реализующими интерфейс IEnumerable<T>.
• Queryable
— предоставляет набор статичных методов для работы с объектами, реализующими интерфейс IQueryable<T>.
Методы этих классов, вроде Where, Select, Sum
и др., используются в любом LINQ-выражении для построения запросов, обработки и фильтрации данных.
? System.Data.Linq:
• DataContext
— основной объект для работы с LINQ для SQL, предоставляет контекст базы данных, через который осуществляется доступ ко всем сущностям базы данных;
• EntitySet<TEntity>, EntityRef<TEntity>
(структура) — обеспечивают связь между сущностями в LINQ для SQL;
• Table<TEntity>
— представляет таблицу с возможностью изменения объектов;
• CompiledQuery
— предоставляет возможность компилировать и повторно использовать запросы.
Контекст базы данных, наследующий от класса DataContext
, в LINQ для SQL принято создавать с помощью мастера, который автоматически сгенерирует LINQ для SQL-классов. После такой генерации работа с объектной моделью становится очень простой, например, приведенный в разделе ADO.NET пример в исполнении LINQ для SQL будет выглядеть так:
using (MyDatabaseDataContext dataContext = new MyDatabaseDataContext())
{
string phone = dataContext.Customers
.Where(x => x.name == "Сергей Петров")
.FirstOrDefault().phone;
}
Согласитесь, это заметно более простое решение по сравнению с вариантом, написанным с использованием ADO.NET Dataset.