1

私が取り組んでいる日付の比較にいくつか問題があり、コードに表示されます(コンパイルエラーなしでDateTime.Now.AddMonth(2)を実行する方法を知っておくと便利です)が、私が本当に興味を持っていることそのため、foreachを繰り返し処理し、雇用主の組織名を出力しようとすると、nullポインター例外が発生します。次のデバッグは、雇用者エンティティが存在するがnullであることを確認します。参加することでこれにアクセスできると思っていました...

 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;
         }
4

1 に答える 1

2

を選択するjobと、型のスカラー値のみに関心があることを Entity Framework に効果的に伝えますJob

次のように雇用者プロパティを熱心にロードできます。

var results = (from job in db.jobs.Include("employer")
              // ...
于 2012-07-20T18:13:38.297 に答える