Iましmanay対多の2つのエンティティ間の関係:カテゴリー< - >アイテムEF - すべてのネストされたエンティティをロードするために積極的なロードを防ぐためにどのように
public class CategoryMaster
{
[Key]
public int Id { get; set; }
public string Name { get; set; }
public virtual List<SubCategoryMaster> SubCategories { get; set; }
public List<ItemMaster> Items { get; set; }
}
public class ItemMaster
{
public long Id { get; set; }
public string Name { get; set; }
public List<CategoryMaster> Categories { get; set; }
}
私は明示的な負荷に関する項目にしようとするたびにすべての/特定のカテゴリ、それはこれらの項目に私にそれらのCAへ
関連する項目を
- すべての関連項目
- 関連カテゴリーを与えますtegoriesなど...円形/ネストされた参照
db.CategoryMaster .Include(x=>x.Items) .Include(x=>x.SubCategories.Select(y=>y.Items)) .ToList();
Json.Encode(持つ*の.cshtmlにJSONにそれをシリアル化しながら、従って以下のエラーになります)。私は、プロパティレベルでの遅延ロードを無効にしたので
A circular reference was detected while serializing an object of type 'GoGreen.Data.Entities.SubCategoryMaster'.
、私はそれが時間の任意の時点で、すべてのネストされたエンティティ(循環参照)をロードするために期待していませんよ。関連するすべてのレベル1のレコード、つまりカテゴリおよび関連アイテムをロードする方法はありますか?
Related question - しかし、Iodonは2つの方法のいずれかを提案したいと思っていません。
:私はEFがこのように動作する理由を知ることにもっと興味があります。私にはバグがあるようです。
答えを確認し、それがあなたを助けたかどうかを教えてください。 –
jsonシリアライザをJson.Netで置き換え、参照ループ処理を設定する必要があります。 –