Допустим, у меня есть таблица Contacts
, Customers
и Suppliers
. Контакты имеет столбец ContactTypeId
и ExternalContactId
. Таким образом, вы можете получить либо:
var extContacts = from ct in _context.Contacts
join cu in _context.Customers
on ct.ExternalContactId equals cu.Id
Или у меня это тоже может быть
var extContacts = from ct in _context.Contacts
join su in _context.Suppliers
on ct.ExternalContactId equals su.Id
Здесь я показал только 2 соединения, чтобы проиллюстрировать мою точку зрения. В моем случае у меня 5 таблиц.
Есть ли способ, я могу сделать только один звонок, присоединиться к таблице контактов в зависимости от ContactTypeId
? В противном случае мне, возможно, придется сделать более 1 звонка (до 5).
Что-то вроде:
var extContacts = from ct in _context.Contacts
join (
//if type is Customer --> Join with Customers table
//if type is supplier --> join with Suppliers table
)
select name, phone, address //fields common to both tables
Спасибо за помощь