C# 包含子类型的Linq查询
在我的模型中,我将C# 包含子类型的Linq查询,c#,linq,entity-framework,C#,Linq,Entity Framework,在我的模型中,我将Address作为基类,将MailingAddress、Email和Phone作为Address的子类。一个人有一个地址,因此查询一个拥有奥克兰邮寄地址的人时,如下所示: var peopleInOakland = from p in entities.DbObjectSet.OfType<Person>() from a in p.Addresses.OfType<MailingAddress>
Address
作为基类,将MailingAddress
、Email
和Phone
作为Address的子类。一个人
有一个地址,因此查询一个拥有奥克兰邮寄地址的人时,如下所示:
var peopleInOakland = from p in entities.DbObjectSet.OfType<Person>()
from a in p.Addresses.OfType<MailingAddress>()
where a.City == "Oakland"
select p;
var peopleInOakland=来自entities.DbObjectSet.OfType()中的p
从类型()的p.Addresses.中的
其中a.城市==“奥克兰”
选择p;
我如何在我的查询结果中包括此人的邮寄地址?我知道我应该使用Include,但我不确定如何在.Include
参数中命名MailingAddress
提前感谢只需使用理解表达式的本地名称选择一个匿名类型:
...
select new {
Persion = p,
Address = a
};
您必须创建一个新类型,该类型具有您要查找的特定类型,如下所示:
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>() };
var peopleInOakland=
来自entities.DbObjectSet.OfType()中的p
从类型()的p.Addresses.中的
其中a.城市==“奥克兰”
挑选
新的{Person=p,Addresses=p.Addresses.OfType()};
我想他是在要求语法来填充Person对象,这些对象返回的地址类型为MailingAddress。尽管如此,我还是不知道该怎么做:)@Jonathan:如果正确的话,那么这只是对两个答案的细微修改,但需要澄清;因为两个答案都是“在查询结果中包含邮件地址[…]”