我的对象有很多collections
public class Person
{
public int id {get; set;}
public ICollection<Address> Address {get; set;}
public ICollection<Job> Job {get; set;}
}
public class Adress
{
public bool IsCurrent {get; set;}
}
public class Job
{
public bool IsCurrent {get; set;}
}
一个人可以拥有list of addresses
,但只有一个是最新的,list of Jobs
但只有一个是最新的。
我需要编写一个linq to sql
实体框架查询,我在其中选择Id= 1
的人并获取current job and current address
。
然后选择然后从person, current address and current job
中选择一些字段。
答案 0 :(得分:3)
假设Job
和Address
有一个名为IsCurrent
的布尔字段。
using (YourDbContext context = new YourDbContext()) {
int id = 1;
var results = (from person in context.People
where person.Id == id
select new {
Person = person,
CurrentJob = person.Job.FirstOrDefault(j => j.IsCurrent),
CurrentAddress = person.Address.FirstOrDefault(a => a.IsCurrent)
});
}
您可以将匿名对象更改为适合您的任何内容。