0

我将 EF4.3 与 DbContext 一起使用。

我有存储在 cookie 中的实体。

当用户返回站点时,我目前将 cookie 值解析为 List,但是,实体“BookmarkedDeals”具有“Deal”的导航属性,我想让列表 IQueryable,因此我可以简单地附加导航属性急切或延迟加载

得到一份清单后,这是我最初尝试的;

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

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

但是 Deal 为空。

任何人都知道如何实现这一目标?

4

2 回答 2

0

您的“从 cookie 填充”代码需要返回IQueryable<BookmarkedDeals>而不是将其转换为列表。那,或者您需要将调用.Include("Deal")直接添加到该代码。

对ListAsQueryable()对象或任何其他本身没有实时连接到数据库的事情进行操作将永远不会起作用。

编辑:我没有完全阅读你的问题。如果实体本身存储在 cookie 中,它就无法工作。我会将 ID 存储在 cookie 中,并根据这些 ID 执行包含“交易”的查询。

于 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 回答