我想做以下事情......
FROM o IN orders
SELECT new OrderContainer { Contact = (PostalContact) o.Contact }
所以希望您可以看到订单的“联系人”将是派生类型。不幸的是,它似乎没有进行多态获取!无论如何要实现这个目标吗?
干杯,伊恩。
答案 0 :(得分:2)
尝试使用扩展方法.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 )每个层次结构的联系人表