假设我有一个表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
加入Contacts表吗?否则,我可能必须拨打多个电话(最多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
感谢您的帮助