实体框架搜索

时间:2012-08-24 11:11:12

标签: .net entity-framework-4

我目前有一个搜索,可以让我按照多种组合过滤产品。

例如,我可以从所有产品开始,然后按类别或热门商店选择 - 它只是在每次选择过滤器时处理数据,显示每种过滤器的总数以及可用的可能选择。用户可以多次这样做以进入最终列表。

我是第一次与EF合作,搜索将有大约10k个产品开始。

使用EF而不是Linq2Sql或SP的主要区别在于它不仅可以获取数据,还可以同时实现这些数据。虽然抓取页面数据需要60ms,但10k产品需要4s。虽然听起来不是很多,但每次用户刷新搜索时我都无法做到这一点。

我可以缓存数据,但这确实会限制应用程序在上限阈值或服务器场方面,尽管它现在符合要求。

我想知道除了创建一个定制的SP之外是否还有更好的方法来实现这个目标。我不想使用javascript,因为它是网站运作的基础。

有人有什么想法吗?

3 个答案:

答案 0 :(得分:0)

您不应该加载所有10k产品。如果您需要提取类别等,请单独执行此操作,并且只需为您当前所在页面提取所需的数据量。这意味着所有工作都将在SQL服务器上完成,应用程序只能处理所需的数据量。

答案 1 :(得分:0)

使用一些支持分页的控件。

然后在您的选择查询中使用.Skip().Take()

答案 2 :(得分:0)

重构代码,以便不需要导航属性。这会将查询的表的数量从3减少到1,并提供可接受的结果。