Я работаю с существующей системой и обновляю ее до. NET Core, Web API и EF Core.
Существующая система имеет 2 таблицы:
- Родительская таблица : Id, name, et c ..
- Дочерняя таблица: Id, ParentId, name и др. c ..
Хотя ParentId
существует в дочерней таблице нет ссылки на внешний ключ, но я хочу иметь возможность использовать include при запросе родителя. Я попросил не добавлять FK в процессе удаления, они помещают значения -ve в столбец parentId
. Таким образом они могут вернуть его обратно, и таким образом была построена унаследованная система.
Теперь, при перенастройке db-first, как я могу указать свойство навигации без fk, чтобы мое EF Core действовало реляционно; или, по крайней мере, вернуть их вместе. Добавлять обнуляемый внешний ключ нельзя, так как это приведет к поломке системы при добавлении значений -ve.
Я предлагал полную очистку БД и избавление от значений -ve, но это требует большого количества тестирования и не доставляется. Короче говоря, как добавить свойство навигации без внешнего ключа в первую миграцию базы данных?
Я попытался добавить коллекцию и виртуальную запись в модель, но после миграции она была перезаписана. Я добавил это, используя HasMany на построителе моделей согласно этому документу - https://docs.microsoft.com/en-us/ef/core/modeling/relationships?tabs=fluent-api%2Cfluent-api-simple-key%2Csimple-key
Но леса перекрывают мое свойство навигации