Я смотрю на обновление нашей формы хранилища 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, чтобы сделать это, я думаю Сначала мне нужно будет создать базу данных с предварительно созданными и настроенными таблицами системы записей.