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