2016-06-28 1 views
1

Итак, после этого примера (https://msdn.microsoft.com/en-us/data/jj193542) Я смог вручную ввести классы Entity и класс DbContext, чтобы создать новую базу данных с нуля.Code First - Как программно генерировать DbContext и Entities?

Это все хорошо и хорошо, но мне нужно программно создать DbContext и Entities (из сборки, которую я построил, которая предоставляет метаданные), а не вручную их выписывать. Затем мне нужна база данных, которая будет создана в SQL на лету во время компиляции или времени выполнения, а не когда программная добавка записывается (как показывает пример в приведенной выше ссылке).

Возможно ли это с помощью метода Code-First?

+0

Итак, используя t4-шаблоны, я смог включить мою сборку и создать классы DbContext и Entity. Проблема в том, что мне все еще нужно программно открыть DbContext, создать новый пустой объект и добавить его, а затем вызвать db.SaveChanges(), чтобы база данных и таблицы создавались в SQL !! Должен быть другой способ создать базу данных! Кто угодно? – jjf1978

+1

Database.Initialize создаст базу данных. https://msdn.microsoft.com/en-us/library/system.data.entity.database.initialize(v=vs.113).aspx –

+0

Это, спасибо, сэр. – jjf1978

ответ

0

Это решение. Для генерации DbContext и Entities я использовал шаблоны T4 (более подробно о шаблонах T4 см.: https://msdn.microsoft.com/en-us/data/gg558520.aspx), а затем просто вызовите Database.Initialize (false), чтобы заставить базу данных создавать, когда приложение (консольное приложение в этом случае) выполняется.

 using (var db = new MyContext()) 
     { 
      db.Database.Initialize(false); 
     }