Создание файлов ADO.NET Entity Data Model, с чего начать?

2

Наш продукт частично построен с использованием Delphi и частично .NET и в нашем текущем состоянии миграции на .NET у нас есть словарь данных в компоненте Delphi, поэтому это мастер.

Из этого мы создаем исходный код .NET с помощью шаблонов, поддерживаем простой запрос, а также делаем Linq2Sql, поскольку наш продукт требует SQL Server.

Однако я бы хотел переключиться на новую модель Entity в .NET вместо Linq2Sql, но я не знаю, сколько работы было бы. Все учебники или примеры, которые я нахожу, вращаются вокруг моделирования модели данных в дизайнере или получения ее из базы данных, и не работают для наших нужд.

В Linq2Sql мы аннотировали наши классы запросов с помощью TableMappingAttribute и ColumnMappingAttribute, а затем сгенерировали потомок DataContext, все это очень хорошо работает.

Есть ли такой же простой путь, чтобы вместо этого использовать код модели Entity? Или мне нужно создавать все эти XML файлы и запускать инструменты для создания ресурсов и т.д.?

Кто-нибудь был в той же ситуации и может пролить свет на это?

  • 0
    .NET 4 вариант? В EF 4 есть еще много вариантов генерации моделей. Для EF 1 вам нужен XML.
  • 0
    Не сейчас, нет. Мы будем обновлять в следующем году, вероятно.
Теги:
entity-framework
code-generation

1 ответ

3
Лучший ответ

К сожалению, для вас я думаю, что вам нужны файлы XML.

На самом деле есть 3 файла, которые составляют EDM. (хотя в визуальной студии все они объединены в 1 файл EDMX)

  • ssdl - storage (Описывает базу данных)
  • csdl - концептуальный (описывает объекты данных)
  • msl - mapping (Описывает отображение между хранилищем и концептуальным)

Из файлов EDM EDM Generator можно использовать для генерации всех трех из соединения с базой данных, а также msl и csdl из ssdl, или он может генерировать фактические объекты данных из csdl.

К сожалению, это не то место, где останавливается использование XML. Во время выполнения все еще необходимо, чтобы инфраструктура сущности выполняла перевод с объектов на хранилище и т.д. Ссылка на 3 файла EDM должна быть предоставлена ​​в инфраструктуре Entity строка подключения. (Дополнительная информация о построение строк подключения EF)

Вероятно, вы могли бы создать способы создания кода объектов данных (или автоматически пометить существующие существующие с помощью различных обязательных атрибутов и дополнительных методов). Например, Linq имеет такие атрибуты, как EdmEntityTypeAttribute и EdmScalarPropertyAttribute, которые помещаются в классы и свойства, но без 3 EDM файлов инфраструктура сущности не будет знать, что делать с вашими объектами данных. Генератор также добавляет другие вещи к классам объектов данных, таким как события с измененными свойствами, и наследование EntityObject. Я не уверен, что из дополнительных материалов требуется для правильной работы инфраструктуры сущности и того, что есть только для разработчика. Я бы предположил, что события изменения свойств требуются контекстом данных для отслеживания изменений.

Здесь содержится статья об инструментах EDM и некоторый код для генерации/разделения файлов EDMX в их файлы ssdl/csdl/msl./p >

Ещё вопросы

Сообщество Overcoder
Наверх
Меню