Я столкнулся с несколькими статьями, которые в основном используют запрос Entity Framework, чтобы показать, как извлекать данные. Однако, если рассматривать структуру таблицы ниже:Поиск данных на основе данных в таблице
Если я хочу найти деталь автомобиля с ID 2, используя только простой SQL, я должен использовать идентификатор, чтобы посмотреть на матч в унаследовали таблицы («Использованный автомобиль» и «Новый автомобиль» в этом примере)?
Разве это не вызывает полную проверку таблицы «Используемый автомобиль», прежде чем я найду ее в таблице «Новый автомобиль»? Или есть способ, которым я мог бы знать, что мне нужно напрямую зайти в «Новый автомобиль»?
Или мое предположение о неправильном дизайне Table-Per-Type?
Невозможно с TPT узнать, какая «производная» таблица содержит данные для определенного идентификатора. Информация всегда извлекается с помощью объединений. См. Раздел ** Вопросы TPT ** в разделе [Наследование с кодом EF Сначала: Часть 2 - Таблица для каждого типа (TPT)] (https://weblogs.asp.net/manavi/inheritance-mapping-strategies-with-entity-framework -code-first-ctp5-part-2-table-per-type-tpt) –
@IvanStoev Спасибо. Для наследования 1 уровня, где у меня есть 1 базовая таблица и говорят 10 ближайших дочерних таблиц, будет ли производительность проблемой? Я считаю, что производительность может быть проблемой, если у меня есть несколько уровней наследования. Правильно ли я понимаю? – Ayusman
ИМО, да. Я бы рекомендовал вам прочитать целую серию из ссылки, автор подробно объясняет все 3 стратегии наследования EF с плюсами и минусами каждого (ни один из них не идеален). –