2012-08-24 71 views
0

我目前有一个搜索,允许我过滤下来的产品,为一些组合。例如,我可能会从所有产品开始,然后按类别或热门商店进行选择 - 每次选择一个过滤器时,它都会简单地分析数据,显示每种过滤器的总数以及可能的选择。用户可以多次执行此操作以获得最终列表。实体框架搜索

我正在与英孚第一次和搜索将有大约10K产品开始。

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

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

我想知道,但是如果有更好的方式来创建这个比创建一个定制的SP。我不想使用JavaScript,因为它是网站工作的基础。

任何人有任何想法?

回答

0

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

0

您永远不应该加载所有10k产品。如果你需要拉出类别等,那么单独做这件事,并且只需要拉取当前页面所需的数据量。这意味着所有的工作都将在SQL服务器上完成,应用程序只能处理它需要的数据量。

+0

不容易使用EF。一个产品可以驻留在几个类别中,因此我必须使用include。我还没有找到过滤包含属性的方法。 – dotnetnoob

0

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

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

+0

尽管我可能会在一个页面上显示10个产品,但我仍然需要了解有关过滤器的详细信息,还有什么选择了可以选择的内容。 – dotnetnoob

+0

@ user1437135:你的意思是,就像*显示了45个“匹配过滤标准”中的10个*? –