Нечто подобное может сработать.
объект с таким результатом:
public class MyObject
{
public string positiontitle { get; set; }
public DateTime? maxDatePosted { get; set; }
public IEnumerable<string> SiteNames { get; set; }
}
datetime
должен иметь nullable datetime
, чтобы он работал.Тогда запросы будут такими:
var result=(
from jobs in db.Jobs
select new MyObject()
{
positiontitle=jobs.positiontitle,
maxDatePosted=db.Posted
.Where(p =>p.jobid==jobs.jobid)
.Max(p =>p.dateposted),
SiteNames=db.Posted
.Where (p =>p.jobid==jobs.jobid && p.active==true)
.Select (p =>p.siteName)
}
).ToList();
Если вы хотите, чтобы максимальная дата была выставлена и для активных.Тогда что-то вроде этого:
var result=(
from jobs in db.Jobs
select new MyObject()
{
positiontitle=jobs.positiontitle,
maxDatePosted=db.Posted
.Where(p =>p.jobid==jobs.jobid && p.active==true)
.Max(p =>p.dateposted),
SiteNames=db.Posted
.Where (p =>p.jobid==jobs.jobid && p.active==true)
.Select (p =>p.siteName)
}
).ToList();
Где db - контекст базы данных linq