Как я могу отменить значения столбцов по умолчанию для инженера, которые используют скалярные функции с EF Core? - PullRequest
0 голосов
/ 20 февраля 2020

Я смотрю на обновление нашей формы хранилища Linq до Sql до EF Core 3.

Я могу выполнить обратный инжиниринг модели из базы данных, используя команду scaffolding, и она правильно создает поля FK, которые по умолчанию значение ищется с помощью скалярной функции с именем dbo.DefaultSystem()

Но тогда я не могу использовать EF Core для создания базы данных с нуля, потому что она не может компенсировать программируемость.

Есть, типа какой-то крюк перед созданием, который я могу взять? Или, что еще лучше, способ вызвать код после таблицы Systems.

После создания Systems я могу просто выполнить несколько SQL для создания DefaultSystem function.

Я должен предположить, что в EF Core есть логика c, которая знает, что должна создать таблицу Systems, прежде чем она создаст все таблицы с внешними ключами, указывающими на нее?

Обновление для комментария от JDWeng

"Сначала вы [создали? - редактировали] базу данных. Какова ваша строка подключения? Вы подключаетесь к сервер (сервер, прикрепленный к файлу MDF) или LocalDb, который является файлом MDF? "

Строка подключения источника для обратного инжиниринга:

@"Server=SQLDEV01\2008R2;Database=Database_Version_88;Trusted_Connection=True;"

Строка подключения назначения для проверки db.EnsureDeleted();db.EnsureCreated();

@"Server=(localdb)\mssqllocaldb;Database=LocalDevTest_Version_88;Trusted_Connection=True;"

Итак, исходная база данных размещена на Windows Сервере, на котором работает Sql Сервер 2008R2. Это наш сервер разработки схем с ограниченным доступом, который содержит дизайн для нашей базы данных. Мы создаем схемы shapshots и обновляем сценарии между несколькими версиями базы данных. Этот сервер считается проектом евангелия.

Целевой базой данных является (localdb)\mssqllocaldb, которая создается с помощью EnsureCreated () из DbContext, сгенерированного двоичными файлами Scaffold. Я не знаю много о внутренностях этого, но согласно вашему комментарию я просто создаю и подключаюсь непосредственно к файлу mdf.

Если нет ничего автоматического c, чтобы сделать это, я думаю Сначала мне нужно будет создать базу данных с предварительно созданными и настроенными таблицами системы записей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...