Сериализация сущностей с самостоятельным отслеживанием
В приложении ADO.NET Entity Framework контекст объекта отвечает за отслеживание изменений в объектах. Однако если необходимо работать с объектами на другом уровне, где недоступен контекст объекта, то нужно решить, каким образом изменения будут отслеживаться и возвращаться в контекст объекта. Начиная с четвертой версии платформы Entity Framework, сущности с самостоятельным отслеживанием позволяют отслеживать изменения на любом уровне. Сущность с самостоятельным отслеживанием строится по шаблону Text Template Transformation Toolkit (T4), который создает типы сущностей, обладающие возможностью записывать изменения скалярных свойств, сложных свойств и свойств навигации. Шаблон генератора сущностей ADO.NET с самостоятельным отслеживанием доступен в Visual Studio 2010. Дополнительные сведения см. в разделе Пошаговое руководство по сериализации сущностей с самостоятельным отслеживанием.
Этот образец можно загрузить на узле Образцы из документации платформы Entity Framework портала MSDN Code Gallery.
Сценарий
В образце показано, как служба WCF обеспечивает доступ к набору операций, возвращающих графы сущностей. Затем клиентское приложение обрабатывает этот граф и передает изменения операции службы, которая проверяет изменения и сохраняет их в базе данных с помощью платформы Entity Framework.
Предварительные требования
Перед запуском образца убедитесь, что на компьютере установлено следующее программное обеспечение:
Среда Visual Studio 2010, включая платформу .NET Framework 4
Компонент SQL Server 2005 Database Engine или SQL Server 2008 Database Engine
Образец базы данных School (поставляется вместе с данным образцом)
Среда SQL Server Management Studio (необязательно)
Построение образца
Образец STESchoolModelExample состоит из 5 проектов.
Проект библиотеки классов STESchoolModel, содержащий модель на основе School и шаблоны сущностей с самостоятельным отслеживанием, в том числе шаблон типа сущностей с самостоятельным отслеживанием и типизированный шаблон System.Data.Objects.ObjectContext.
Проект библиотеки классов STESchoolModelTypes, связанный с шаблоном типов сущностей с самостоятельным отслеживанием, который находится в проекте STESchoolModel.
STESchoolModelService — служебное приложение Windows Communication Foundation (WCF), предоставляющее доступ к набору операций, которые возвращают графы сущностей и применяют в базе данных изменения, выполненные на клиенте.
STESchoolModelConsoleTest — консольные клиентские приложения.
STESchoolModelWPFTest — клиентское приложение Windows Presentation Foundation (WPF).
Выполните следующие шаги, чтобы построить образец.
Построение приложения STESchoolModelExample
Если образец базы данных School отсутствует в экземпляре SQL Server, выполните скрипт CreateSchool.sql, включенный в проект (необязательно).
Откройте файл решения в Visual Studio.
Если база данных School создана в экземпляре SQL Server, отличном от экземпляра по умолчанию на локальном компьютере, укажите нужный экземпляр SQL Server, изменив источник данных в строке подключения в файле конфигурации следующих проектов: STESchoolModelService, STESchoolModelConsoleTest, STESchoolModelWPFTest (необязательно).
Постройте решение.
Запуск образца
Выполните следующие шаги, чтобы запустить образец.
Запуск клиентского приложения
Обновите ссылку на службу в клиентских проектах STESchoolModelWPFTest и STESchoolModelConsoleTest. Чтобы обновить ссылку, в окне Обозреватель решений щелкните правой кнопкой мыши элемент ServiceReference1 в папке Ссылки на службы и выберите команду Обновить ссылку на службу.
Назначьте проект STESchoolModelWPFTest или STESchoolModelConsoleTest в качестве запускаемого.
Запустите приложение. Если клиенту не удается связаться со службой по ссылке, выполните следующее действие.
Удалите ServiceReference1 из клиентского проекта.
Снова добавьте ссылку на службу. Чтобы добавить ссылку на службу, в окне Обозреватель решений щелкните правой кнопкой мыши папку Ссылки на службу и выберите команду Добавить ссылку на службу.
Настройте службу. Поскольку STESchoolModelService возвращает System.Collections.Generic.List, необходимо настроить ссылку на службу. Щелкните правой кнопкой мыши имя службы (ServiceReference1) и выберите команду Настроить ссылку на службу. В диалоговом окне «Настроить ссылку на службу» выберите тип System.Collections.Generic.List из списка Тип коллекции.
Запустите приложение.
Удаление образца
Следующая процедура служит для удаления образца STESchoolModelExample.
Удаление приложения STESchoolModelExample
Удалите каталог проекта вместе с его содержимым.
Удалите базу данных School из экземпляра SQL Server (необязательно).
См. также
Другие ресурсы
ADO.NET Entity Framework
Модель EDM
Средства модели EDM ADO.NET
Привязка объектов к элементам управления
Пошаговое руководство по сериализации сущностей с самостоятельным отслеживанием