Технология LINQ и модель EDM
Технология LINQ to Entities позволяет разработчикам создавать гибкие, строго типизированные запросы к контексту объекта модели Entity Data Model (EDM) с использованием выражений LINQ и стандартных операторов запросов LINQ. Это позволяет создавать строго типизированные запросы, которые можно комбинировать на языке, подобном Transact-SQL, непосредственно в среде разработки. Запросы создаются на языке программирования, а не в виде строковых литералов, внедренных в код приложения, как это обычно бывает в приложениях среды Microsoft .NET Framework версии 2.0. Синтаксические ошибки, ошибки в именах членов классов и в названиях типов данных будут обнаружены на стадии компиляции, что снижает потенциальные проблемы несоответствия типов в модели EDM и приложении.
Когда приложение использует модель EDM, сопоставление концептуальной модели данных с базовым источником данных производится автоматически. Разработчик может создавать приложения LINQ to Entities, ничего не зная о базовом источнике данных и о том, какие методы запросов он поддерживает. Это также позволяет заменить источник данных на сервере, не меняя клиентского приложения, поскольку большинство функций, зависящих от конкретной базы данных, выполняются службами объектов. Дополнительные сведения см. в разделе Общие сведения о службах объектов (платформа Entity Framework).
Запросы LINQ to Entities используют инфраструктуру служб объектов. Класс ObjectContext является основным классом для взаимодействия с моделью EDM как с объектами среды CLR. Разработчик создает экземпляр объекта ObjectQuery через контекст ObjectContext. Общий класс ObjectQuery представляет запрос, возвращающий экземпляр коллекции типизированных сущностей. Объекты сущностей, возвращаемые запросом ObjectQuery, отслеживаются контекстом объекта, и их можно изменять с помощью метода SaveChanges.