Всем привет. Есть задача которая вызывала у меня трудности — возможно кто-то уже сталкивался с ней или просто знает решение — тогда плиз поделитесь решением, или хотя бы подскажите куда копать.
задача: есть база, необходимо по ConnectionString автоматически сгенерировать EF модель (классы для таблиц и контекст) моделька должна быть представленна в виде DLL. ключевое слово здесь "Автоматически" т.е. без вмешательства программиста: — на вход дали ConnectionString на выходе получили DLL в которой EF модель (классы+отношения+контекст). еще одним очень важным условием является то, что должна быть возможность кастомизировать генерацию модельки т.е. там по мимо самих классов для таблиц предполагаются еще дополнительные классы.
как это можно сделать руками: — создаем проект, добавляем в него EDMX, к EDMX добавляем T4 шаблон, изменяем его под наши нужды, и компилируем — в результате имеем то что нам нужно. это все работает прекрасно но с одним недостатком — здесь нужен программер который все это делает руками. задача в том чтобы сделать функцию которой на вход передать ConnectionString а на выходе получить DLL.
как я это пытаюсь сделать: написал функцию которая на вход получает ConnectionString, вызывает EdmGen который генерирует csdl, msl, ssdl файлы а так же что самое важное для меня cs, его я компилирую и получаю DLL. в принципе почти то что мне нужно за одним исключением — я не могу в этом процессе кастомизировать генерацию cs кода при помощи T4 а это одно из необходимых условий.
в принципе на данном этапе задача сводиться к следующим вопросам:
1) можно ли генерировать код не прибегая к вызову утилиты EdmGen.exe а используя какой-то API, при этом кастомизируя генерацию кода при помощи T4
2) и если нет, то как кастомизировать генерацию кода которую делает EdmGen.exe при помощи T4 шаблона
может кто посоветует как это сделать, по большому счету мне хотя бы ответ на второй вопрос и это уже решило бы много проблем.