Создание таблиц из входных данных во время выполнения в EF Core - PullRequest
0 голосов
/ 18 февраля 2019

У меня есть несколько десятков определений таблиц и данных в текстовом виде.Определения таблиц также могут время от времени меняться.

Я хотел бы создавать таблицы EF Core из этих определений во время выполнения и заполнять их из этих файлов.

Миграция также была бы хороша, если это возможно.

Возможно ли это?

В качестве альтернативы: возможен ли SQL "Создать таблицу xyz" из DatabaseContext?

Или мне лучше использовать простые (Npg) sqlCommands для создания, вставки и обновления?

Я использую Npgsql, кстати.

1 Ответ

0 голосов
/ 19 февраля 2019

Если вы просто хотите выполнить свой собственный SQL для создания таблиц, тогда не имеет значения, делаете ли вы это с помощью NpgsqlCommand (ADO.NET) или EF Core.EF Core на самом деле не имеет никакой дополнительной ценности для выполнения такого вида необработанного SQL, так что вам, вероятно, лучше использовать NpgsqlCommands.Однако вы должны убедиться, что ваша модель кода EF Core точно соответствует вашим текстовым определениям.Либо вы убедитесь в этом вручную (поддерживая модель класса C #, которая точно соответствует), либо вы можете выполнить обратный инжиниринг модели из базы данных, созданной на основе вашего определения).

Однако миграции - это совсем другое,Если идея состоит в том, чтобы сохранить определения внешних таблиц и даже развить их, то в действительности миграции не имеют смысла - ваши внешние определения являются вашим единственным источником правды в схеме, и все вытекает из этого.Если вы хотите работать с миграциями EF Core, то ваша модель C # должна быть вашим единственным источником правды - вы вносите в нее изменения, и база данных обновляется.

Обратите внимание, что проблема открыта при обновлении модели кода из существующей базы данных - это позволит вам вносить изменения в вашу базу данных (с помощью внешних определений?) и обновлять модель кода, а не восстанавливать ее с нуля.Однако это еще не реализовано.

...