#c# #asp.net-core #database-design #entity-framework-core
Вопрос:
Я пытаюсь разобраться в одном проекте, и вот в чем вопрос. Итак, когда мы используем подход «сначала база данных», то есть определяем таблицы в среде SQL server management studio, а затем создаем их внутри нашего приложения в Visual Studio, как может случиться, что созданный класс модели конкретной таблицы содержит не только свойства, соответствующие столбцам таблицы, но и некоторые виртуальные свойства из других таблиц? Например, если у нас есть таблица со столбцом AspNetUserId, класс модели будет иметь свойство AspNetUserId, но также свойство типа AspNetUsers. Как эти дополнения и «соединения» между различными таблицами выполняются подобным образом? И в целом я заметил следующую закономерность в классах моделей при сравнении с тем, как определяются таблицы — если у нас, например, есть документ таблицы и Представление таблицы, а в представлении таблицы у нас есть столбец ApplicationDocumentId, представление класса модели будет содержать виртуальное свойство типа Document с именем ApplicationDocument. Это то, что делает Entity Framework? Не могли бы вы, пожалуйста, рассказать немного об этом? Спасибо.
Комментарии:
1. Обратное проектирование может быть хорошим местом для начала, и я думаю, что Свойства теней и индексаторов отвечают на многие ваши вопросы.
2. В EF есть много предполагаемых вещей, одна из которых заключается в том , что если в таблице A есть столбец с именем XXXId, который является внешним ключом к таблице XXX, то он создаст свойство в классе сущностей A со свойством XXX.
3. Я думаю, вам лучше взглянуть на эту ссылку, чтобы узнать, как она работает EF virtual и relation