在我的模型中,我将Address
作为基类,将MailingAddress
,Email
和Phone
作为Address的子类。 Person
有一个地址,因此查询以获得拥有Oakland Mailing地址的人将会是这样的:
var peopleInOakland = from p in entities.DbObjectSet.OfType<Person>()
from a in p.Addresses.OfType<MailingAddress>()
where a.City == "Oakland"
select p;
如何在查询结果中包含此人的邮寄地址?我知道我应该使用Include,但我不确定如何在MailingAddress
参数中命名.Include
。
提前致谢
答案 0 :(得分:2)
您必须创建一个具有您要查找的特定类型的新类型,如下所示:
var peopleInOakland =
from p in entities.DbObjectSet.OfType<Person>()
from a in p.Addresses.OfType<MailingAddress>()
where a.City == "Oakland"
select
new { Person = p, Addresses = p.Addresses.OfType<MailingAddress>() };
答案 1 :(得分:0)
只需使用理解表达式的本地名称选择匿名类型:
...
select new {
Persion = p,
Address = a
};