我試圖加載的SingleOrDefault實體相關的實體,但我得到以下異常:如何加載IEnumerable類型的相關實體<T>
IEnumerable類型的導航屬性不是一個單一的實現類型ICollection
我試過這樣做了幾種方式,並最終得到上述每個查詢對上下文相同的錯誤(我已經包括在評論中的其他方式)。
using(var context = CustomObjectContextCreator.Create())
{
return context.Job.Include("Surveys").Include("SiteInfoes")
.Where(r => r.Jobid == jobId).SingleOrDefault();
//context.ContextOptions.LazyLoadingEnabled = false;
//var Job = context.Job.Where(r => r.Jobid == jobId).SingleOrDefault();
//context.LoadProperty(Job, "Surveys");
//context.LoadProperty(Job, "SiteInfoes");
//var Job = (from j in context.Job
// .Include("Surveys")
// .Include("SiteInfoes")
// select j).SingleOrDefault();
//var Job = context.Job.Where(r => r.Jobid == jobId).SingleOrDefault();
//var surveys = context.Surveys.Where(s => s.JobID == jobId);
//var wellInfoes = context.SiteInfoes.Where(w => w.Jobid == jobId);
//Job.Surveys = surveys.ToList();
//Job.SiteInfoes = wellInfoes.ToList();
//return Job;
}
下面是我使用的POCO對象:
public class Job
{
public int? Jobid { get; set; }
public string JobLocation { get; set; }
public string JobName { get; set; }
public virtual IEnumerable<Survey> Surveys { get; set; }
public virtual IEnumerable<SiteInfo> SiteInfoes { get; set; }
}
public class Survey
{
public int SurveyID { get; set; }
public int? JobID { get; set; }
public DateTime? DateTime { get; set; }
public string Report { get; set; }
public virtual Job Job { get; set; }
}
public class SiteInfo
{
public int Jobid { get; set; }
public string SiteLocation { get; set; }
public virtual JobInfo JobInfo { get; set; }
}
如何正確加載相關實體?
聽起來好像這就是例外告訴我。感謝您的澄清。 – Rich
你能解釋爲什麼IEnumerable不支持? - 我很想知道。 –
series0ne