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