我想做以下事情…
FROM o IN orders
SELECT new OrderContainer { Contact = (PostalContact) o.Contact }
所以希望你能看到订单的'Contact'将是一个派生类型。不幸的是,然而,它似乎没有做一个多态取回!有办法做到这一点吗?
欢呼,伊恩。
尝试使用扩展方法。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 }
另一方面,如果您将基类(实体)设置为抽象,您可能会发现实体将加载完整的对象。但是由于生成的查询,不建议这样做。如果你正在研究这个,你可能想看看(TPH)每个层次表的联系人