私は以下のテーブルデザインを持っています。レイジーローディングは1〜0または1の関係では機能しません
ここからわかるように、1対多数の関係があり、多くはEpisodePatient側にあります。
次に、私は以下のクラスを持っています。
public class EpisodeModel
{
public int ID { get; set; }
public virtual EpisodePatientModel EpisodePatient { get; set; }
}
public class EpisodePatientModel
{
public int EpisodePatientID { get; set; }
public virtual EpisodeModel Episode { get; set; }
}
私はEntity Frameworkで1対0またはそれ以上の関係を設定しています。その理由は、ビューからすべてのEpisodePatientsを選択していて、アクセスしたときにエピソードをレイジーにロードしたいのです。
これは私の関係を設定する方法です。
modelBuilder.Entity<EpisodePatientModel>().HasRequired(r => r.Episode).WithOptional(o => o.EpisodePatient);
私はエピソードが常にEpisodePatientを持ち、またその逆になるよう、これは、ゼロへの1つ私のコードの多くとして機能します。
私が直面している問題は、EpisodePatientを読み込み、エピソードリンクされたアイテムにアクセスしようとすると、常にnullであり、レイジー読み込みが発生しないということです。
私はここで間違っていますか?
UPDATE
これは私が元EpisodePatientアイテムをロードする方法です。
this.DbContext.EpisodePatients.AsNoTracking();
EpisodePatientをロードショークエリ。 –
@mwisnicki私の更新 –
を1から0または1と述べたタイトルでご覧ください。しかし、細部には、1対多の関係があり、多くはエピソード患者側にありますか?それが1対多であれば、それを変更する必要があります: 'public virtual ICollection EpisodePatient {get;セット; } ' –
Ziyad