Я пытаюсь добиться создания динамических моделей ORM с использованием языка C#. Мне нужно это из-за задач в моей работе.Как сгенерировать файлы CSDL и MSL программно?
Я достиг, как создать файл SSDL программно в C#. Я использую EntityStoreSchemaGenerator
класс, который записывает данные таким образом:
var store = new EntityStoreSchemaGenerator(providerInvariantName, connectionString, "ShoppingModel");
store.GenerateStoreMetadata();
store.WriteStoreSchema(filePath);
Я могу показать вам пример файла SSDL я получил: http://pastebin.com/3U4A6fY9
Это нормально, но как насчет того, чтобы получить CSDL и MSL файлы?
Как я понял, для генерации CSDL и MSL-файлов необходимо использовать класс EntityModelSchemaGenerator
для использования с пространством имен System.Data.Entity.Design
.
Если посмотреть на https://msdn.microsoft.com/en-us/library/system.data.entity.design.entitymodelschemagenerator_methods(v=vs.110).aspx
Есть несколько методов:
- WriteModelSchema (String) Записывает сгенерированный концептуальный язык определения схемы (CSDL) в указанный файл.
- WriteModelSchema (XmlWriter) Записывает сгенерированный язык определения концептуальной схемы (CSDL) в объект XmlWriter.
- WriteStorageMapping (String) Записывает сгенерированный язык спецификации сопоставления (MSL) в указанный файл.
- WriteStorageMapping (XmlWriter) Записывает сгенерированный язык спецификации сопоставления (MSL) в объект XmlWriter.
, которые могут быть использованы для создания необходимых файлов (CSDL & & MSL). Но я довольно смущен ... Как сгенерировать их, если EntityModelSchemaGenerator
требуется конструктор System.Data.Metadata.Edm.EntityContainer
.
Как я понял, я должен подготовить контейнер объекта, используя класс EntityConnection
.
Но как я могу создать соединение с сущностью, которое требует, чтобы все файлы метаданных были уже созданы (* .csdl, * .ssdl, * .msl), если моя цель - создать * .csdl & * .msl файлы ранее?
Так что я не могу использовать EntityModelSchemaGenerator
, пока не создам все файлы метаданных? Итак, каков способ создания файлов * .csdl и * .msl (файл * .ssdl)?
Если я использую 'Code' для создания моего' cs' файл, как я могу передать EDMX для 'Code.GenerateCode'? (Первый параметр) – BendEg