0

DbContext で EF4.3 を使用しています。

Cookie に保存するエンティティがあります。

ユーザーがサイトに戻ったとき、私は現在 Cookie 値を解析して List にしていますが、エンティティ "BookmarkedDeals" には "Deal" のナビゲーション プロパティがあり、リストを IQueryable にして、ナビゲーション プロパティを単純にアタッチできるようにしたいと考えています。積極的または遅延読み込み

リストを取得したので、これが最初に試したものです。

List<BookmarkedDeals> bd = // populate it from cookie

var query = bd.AsQueryable().Include("Deal");

しかしディールはヌル。

これを達成する方法を知っている人はいますか?

4

2 に答える 2

0

「Cookie から入力する」コードはIQueryable<BookmarkedDeals>、リストに変換するのではなく、 を返す必要があります。.Include("Deal")それ、またはそのコードに直接呼び出しを追加する必要があります。

AsQueryable()List オブジェクトや、それ自体がデータベースへのライブ接続を持たないその他のものに対して行うことは、決して機能しません。

編集:あなたの質問を完全に読んでいませんでした。エンティティ自体が Cookie に保存されている場合、それは機能しません。ID を Cookie に保存し、それらの ID に基づいて「Deal」を含むクエリを実行します。

于 2012-08-29T18:34:56.273 に答える
0

リストを Cookie に入れる前に、nav プロパティを読み込んでいますか? そうでない場合は、それから始めるべきです。

あるいは、nav プロパティをコンテキストにアタッチする場合は、それをロードすることもできます。

        var db = new YourContext();
        foreach (var deal in bd)
        db.Entry(deal).Reference(b => b.Deal).Load();
于 2012-08-29T18:36:00.787 に答える