Вы можете использовать библиотеку FenixRepo (также доступна как пакет nuget ) для создания определенной таблицы, которая является частью вас Context
. Прежде всего, вам следует вызвать один раз при запуске static
Initialize
метод, где первый аргумент - это фабричный метод, который возвращает экземпляр вашего Context
, а второй - экземпляр Configuration
class
, Он подготовит сценарии SQL для всех ваших таблиц, зарегистрированных на вашем Context
. В случае ASP.NET MVC хорошим решением будет вставить этот код в Global.asax:
FenixRepositoryScriptExtractor.Initialize(() => new Context(), new Configuration());
Затем вы можете создать таблицу нужного типа MyTable
следующим простым способом:
var repo = new FenixRepositoryCreateTable<MyTable>();
//or repo = new FenixRepository<MyTable>();
repo.CreateTable();
Кроме того, если ваша таблица распределена между несколькими миграциями и у них ничего не соответствует другим таблицам, вы можете указать эти миграции (т.е. имена классов из папки Migrations) через FenixAttribute
, и именно они будут использоваться в качестве источника SQL-скрипты, которые будут использоваться для создания таблиц:
[Fenix(nameof(Initial), nameof(MyTableFirstMigration), nameof(MyTableSecondMigration))]
public class MyTable
{
//some stuff
}
Без этого атрибута библиотека будет использовать default сценарии. Всегда лучше указывать миграции, так как в противном случае не гарантируется, что будут созданы все индексы, а также в ваши миграции вы можете включить некоторый пользовательский код, который не будет выполняться в случае решения default .
Библиотека совместима и протестирована с EF 6.1.3 в случае MS SQL.