C# Linq join选择大量数据

C# Linq join选择大量数据,c#,linq,C#,Linq,问题是在我的数据库中,我有一个person对象,它有一个子对象,其中包含该人历史的两个实例。现在,当从数据库中选择person对象时,它将返回给定person的两个实例,每个实例都有该person的不同历史记录 我的LINQ选择 var list = from person in Context.People join pinfoHist in Context.PersonInfoHistories on person.Id equals pinfoHist.PersonI

问题是在我的数据库中,我有一个person对象,它有一个子对象,其中包含该人历史的两个实例。现在,当从数据库中选择person对象时,它将返回给定person的两个实例,每个实例都有该person的不同历史记录

我的LINQ选择

var list = from person in Context.People
           join pinfoHist in Context.PersonInfoHistories on person.Id equals pinfoHist.PersonId into ph from p_info_hist in ph.DefaultIfEmpty()
           select person;

有人知道它为什么这样做吗?有没有办法解决这个问题?

如果您担心有两行的起始(人员)信息相同,您可以执行两个不同的请求来获取数据:

一个是获取人员列表,另一个是所有人员的历史列表。在内存中创建这两个数据表之间的关系之后

这里的问题是,您的数据是以这种方式构造的。如果个人记录本身没有那么大,我会像你已经做的那样:


你有一个数据列表,每一行都有一个人的地址

您需要此人的历史数据吗?如果是的话,哪一条历史记录?为什么你要在ph.DefaultIfEmpty()的p_info_hist()中使用
进入ph?是的,我刚刚意识到这不是方法:p