Как да създадете EDMX от CSDL+SSDL+MSL файлове?

Използвам EdmGen.exe за автоматично генериране на файлове:

  • База данни.cs
  • Views.cs
  • Concept.csdl
  • Storage.ssdl
  • Mapping.msl

Как мога да генерирам EDMX файл от всичко това, за да мога да го включа в моя проект на Visual Studio?

Опитвам се да автоматизирам актуализацията на EDMX по такъв начин, че да не изисква използването на Visual Studio IDE, т.е. изцяло от командния ред.

Причини

Моят екип за разработка трябва да започне да използва огромна база данни на Oracle, която е проектирана отдавна и претърпява малки, не чести промени. ODP Entity Framework от Oracle изглежда е много добра платформа за работата, но техните инструменти за интегриране на Visual Studio идват като катастрофа, която се опитваме да избегнем като чума. Бях помолен да скриптирам автоматично генериране на EF модел напълно от командния ред. Генерирането на нов EDMX от CSDL+SSDL+MSL файлове е мястото, където заседнах.


person vitaly-t    schedule 30.07.2015    source източник


Отговори (1)


Това, което искате, е далеч извън лявото поле за EF. Почти съм сигурен, че ще трябва да напишете някои персонализирани инструменти, тъй като генерирането на EDMX не е нещо, което виждам, че Visual Studio извиква, за да ме накара да мисля, че е част от самата IDE.

Няколко ресурса, които намерих за това:

Разглеждайки EDMX, който имам локално, това е просто логическа комбинация от тези файлове, които вече сте генерирали, така че трябва да можете да разберете и напишете генератор без много проблеми. Разбира се, ще бъде адски досадно.

В крайна сметка, просто не мисля, че има инструмент, който да направи това вместо вас, като се имат предвид типичните стратегии за разработка на EF на подходи първо към кода или първо към базата данни. Предписаното, към което се подходи тук, ще бъде първо с код, но напълно разбирам защо не искате да ги пресъздадете.

Това каза, освен ако абсолютно не се нуждаете от EDMX по някаква причина (визуализация или нещо подобно), всъщност просто бих шаблонирал вашите модели и бих направил псевдо подход „първо кодирайте“ и дори няма да се притеснявам за веригата от инструменти EDMX.

Късмет.

person Bigsby    schedule 30.07.2015
comment
Почти е трудно да се повярва, че Entity Framework не може да се използва без потребителски интерфейс. Мисля, че може би има начин да се генерират всички необходими файлове с модели, които да бъдат включени без EDMX изобщо? Например с параметър /режим:FromSsdlGeneration - person vitaly-t; 31.07.2015
comment
Можете абсолютно да използвате Entity Framework без потребителски интерфейс. Нарича се първо код. Не искаш да правиш това. Винаги можете да опитате да включите файловете, които вече имате, в стандартния низ за свързване на EF. Единственото нещо, което EDMX ви извежда отвъд дизайнера, е конкретна DbContext версия, която обгръща вашите обекти в EntitySet<> обекти. - person Bigsby; 31.07.2015
comment
Може да съм задал грешен въпрос относно получаването на EDMX, но това е много изпълнимо в .NET. Разбрах, че останалите стъпки се извършват просто с помощта на помощната програма TextTransform.exe, която идва с трансформацията на .NET за T4 шаблон. Човек просто се нуждае от правилните T4 шаблони. - person vitaly-t; 31.07.2015
comment
Приемайки отговора 5 години по-късно, не мога да си спомня за какво става дума :) - person vitaly-t; 23.10.2020