Linq加入的实体为null
本文关键字:null 实体 Linq | 更新日期: 2024-06-14 02:26:53
我在处理日期比较时遇到了一些问题,你会在代码中看到(如何进行DateTime.Now.AddMonth(2)而不出现编译错误是件好事),但我真正感兴趣的是,当我迭代foreach并尝试打印雇主组织名称时,为什么会出现空指针异常。以下调试确认雇主实体存在,但为空。我本以为加入会让我访问这个。。。
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;
}
通过选择job
,您实际上是在告诉Entity Framework您只对Job
类型上的标量值感兴趣。
你可以像这样急切地加载雇主属性:
var results = (from job in db.jobs.Include("employer")
// ...