Наш продукт частично построен с использованием Delphi и частично .NET и в нашем текущем состоянии миграции на .NET у нас есть словарь данных в компоненте Delphi, поэтому это мастер.
Из этого мы создаем исходный код .NET с помощью шаблонов, поддерживаем простой запрос, а также делаем Linq2Sql, поскольку наш продукт требует SQL Server.
Однако я бы хотел переключиться на новую модель Entity в .NET вместо Linq2Sql, но я не знаю, сколько работы было бы. Все учебники или примеры, которые я нахожу, вращаются вокруг моделирования модели данных в дизайнере или получения ее из базы данных, и не работают для наших нужд.
В Linq2Sql мы аннотировали наши классы запросов с помощью TableMappingAttribute и ColumnMappingAttribute, а затем сгенерировали потомок DataContext, все это очень хорошо работает.
Есть ли такой же простой путь, чтобы вместо этого использовать код модели Entity? Или мне нужно создавать все эти XML файлы и запускать инструменты для создания ресурсов и т.д.?
Кто-нибудь был в той же ситуации и может пролить свет на это?
К сожалению, для вас я думаю, что вам нужны файлы XML.
На самом деле есть 3 файла, которые составляют EDM. (хотя в визуальной студии все они объединены в 1 файл EDMX)
Из файлов EDM EDM Generator можно использовать для генерации всех трех из соединения с базой данных, а также msl и csdl из ssdl, или он может генерировать фактические объекты данных из csdl.
К сожалению, это не то место, где останавливается использование XML. Во время выполнения все еще необходимо, чтобы инфраструктура сущности выполняла перевод с объектов на хранилище и т.д. Ссылка на 3 файла EDM должна быть предоставлена в инфраструктуре Entity строка подключения. (Дополнительная информация о построение строк подключения EF)
Вероятно, вы могли бы создать способы создания кода объектов данных (или автоматически пометить существующие существующие с помощью различных обязательных атрибутов и дополнительных методов). Например, Linq имеет такие атрибуты, как EdmEntityTypeAttribute и EdmScalarPropertyAttribute, которые помещаются в классы и свойства, но без 3 EDM файлов инфраструктура сущности не будет знать, что делать с вашими объектами данных. Генератор также добавляет другие вещи к классам объектов данных, таким как события с измененными свойствами, и наследование EntityObject. Я не уверен, что из дополнительных материалов требуется для правильной работы инфраструктуры сущности и того, что есть только для разработчика. Я бы предположил, что события изменения свойств требуются контекстом данных для отслеживания изменений.
Здесь содержится статья об инструментах EDM и некоторый код для генерации/разделения файлов EDMX в их файлы ssdl/csdl/msl./p >