Попробуйте использовать метод расширения .OfType ()
from o in orders
select new OrderContainer { Contact = o.Contact.OfType<PostalContact>().FirstOrDefault() }
Редактировать:
способ получить полные данные объекта, но я сомневаюсь, что этого достаточно для ваших нужд.
from c in contacts.OfType<PostalContact>()
where c.Orders.Any(o=>o.Contact.Id == c.id)
select new OrderContainer { Contact = c }
с другой стороны, если вы установите базовый класс (сущность) на abstract , вы можете обнаружить, что сущность будет загружать полные объекты. но это не рекомендуется из-за сгенерированных запросов. если вы смотрите на это, вы можете посмотреть ( TPH ) таблицу на иерархию для ваших контактов