私は3つのテーブルを持っています。Incidents、Rootcauses、および IncidentRootCauses。テーブルincidentrootcausesは、1対多としてインシデントに関連付けられています。インシデント オブジェクトを取得すると、期待どおりに根本原因オブジェクトのリストが表示されず、代わりに (イミディエイト ウィンドウで) 表示されます
var rt = incident.IncidentRootCauses;
{System.Data.Linq.EntitySet} カウント: 1
HasLoadedOrAssignedValues: true
IsDeferred: false
クエリの実行時にすべての根本原因オブジェクトをロードできるようにしたいと考えています。問題は、インシデントが根本原因テーブルに明示的に関連付けられていないことです。これについて何か助けてくれてありがとう。
using (var db = new IncidentTrackerDataContext())
{
var lo = new DataLoadOptions();
lo.LoadWith<Incident>(incidents => incidents.ReportedTo);
lo.LoadWith<Incident>(incidents => incidents.Shift);
lo.LoadWith<Incident>(incidents => incidents.Machine);
lo.LoadWith<Incident>(incidents => incidents.Department);
lo.LoadWith<Incident>(incidents => incidents.IncidentRootCauses);
lo.LoadWith<IncidentRootCause>(i => i.RootCause);
// lo.LoadWith<Incident>(incidents => incidents.IncidentManagers);
// lo.LoadWith<Incident>(incidents => incidents.IncidentMembers);
// lo.LoadWith<Incident>(incidents => incidents.IncidentWitnesses);
db.LoadOptions = lo;
db.DeferredLoadingEnabled = false;
Incident incident = (from i in db.Incidents
where i.IncidentReportID == new Guid(incidentID)
select i).FirstOrDefault();
return incident;
}