0

はコンテキストである:私はGetEstate(estateId)を呼び出すときエンティティのフレームワーク:LazyLoadingEnabled = falseの場合、エンティティのコレクションプロパティが空白なのはなぜですか?ここ

public partial class Estate 
{ 
    public Estate() 
    {    
    }  
    public int Id { get; set; } 
    public virtual ICollection<Photo> Photos { get; set; } 

} 

public Estate GetEstate(int EstateId) 
{ 
    using (var db = new Entities()) 
    { 
     db.Configuration.LazyLoadingEnabled = false; 
     return db.Estates.Find(EstateId); 
    } 
} 

、写真のコレクションは常に空です。誰でも助けることができます。ありがとうございます。

この資料によると:msdn.microsoft.com/en-us/library/jj574232(v=vs.113).aspx、シリアル化する前に、Lazyloadingをオフにする必要があります。私は何を取りこぼしたか?

+0

もちろんです。あなたが怠惰なローディングをすると、それはあなたが得る行動です。他に何を期待しましたか?あなたは今写真を熱心に読み込む必要があります。 –

+0

@PeterBonsこのドキュメントに従って:https://msdn.microsoft.com/en-us/library/jj574232(v=vs.113).aspx、シリアル化する前に、私はLazyloadingをオフにする必要があります。私は何を取りこぼしたか? –

答えて

3

オンデマンドで関連アイテムを読み込む機能をオフにしたので、オンデマンドで関連するアイテムが読み込まれなくなりました。あなたは熱心な負荷で手動でこれを行う必要があります。

私は(インクルードの素敵なバージョンを取得するSystem.Data.Entityを使用して)あなたが持つ熱心な負荷が、それはあなたが必要に含まれます

db.Estates.Include(e => e.Photos).FirstOrDefault(e => e.Id == EstateId) 

ようなものになるだろうので、見つけることができるとは思わない時はいつでもあなたを追加の関連データを一度にロードしたい

関連する問題