1
我有一些问题与日期比较我正在研究,你会看到在代码中(如何做DateTime.Now.AddMonth(2)没有编译错误将很高兴知道),但我真正感兴趣的是为什么当我遍历我的foreach,并试图打印雇主组织名称时,我得到一个空指针异常。调试后确认雇主实体存在,但为空。我预计,连接就已经给了我进入这个......Linq加入实体为空
csoDBConDataContext db = new csoDBConDataContext();
db.ObjectTrackingEnabled = false;//see above comment
var results = (from job in db.jobs
join employer in db.employers on job.employer_id equals
employer.employer_id
where job.cache_major.Contains("business") &&
job.count_major <= 30 && job.del != true &&
job.joblocation != null &&
DateTime.Now.AddMonth(2).CompareTo(((DateTime)job.postdate)) >= 0 &&
DateTime.Now.CompareTo(((DateTime)job.expiredate)) >= 0 &&
job.status_id != 406
orderby Convert.ToDateTime(job.postdate).DayOfYear
select job
).Take(20);
foreach (var j in results) {
output += j.jobtitle + j.joblocation + j.expiredate + j.postdate +
j.employer.organizationname + Environment.NewLine + Environment.NewLine;
}
只是注意,这只会工作,如果[关系](http://msdn.microsoft.com/en-us/library/ee373856 .aspx)正确设置。 – scottm 2012-07-20 18:15:24
@scottm:如果他们不是,我不会期望'j.employer.organizationname'编译。 – StriplingWarrior 2012-07-20 18:16:20
我使用Linq到SQL连接类型,因此Include不是一个选项。虽然用DataLoadOptions解决了它 - 因为我需要加载,所以标记为正确的答案,并且我应该指定我的连接类型。谢谢! – Volvox 2012-07-20 19:14:40