.net 实体框架搜索

.net 实体框架搜索,.net,entity-framework-4,.net,Entity Framework 4,我目前有一个搜索,允许我过滤产品下来,为一些组合 例如,我可能从所有产品开始,然后按类别或流行商店进行选择——每次选择过滤器时,它都会简单地处理数据,显示每种类型过滤器的总数以及可能的选择。用户可以多次这样做以获得最终列表 我第一次与EF合作,搜索将有大约1万个产品 与Linq2Sql或SP相比,使用EF的主要区别在于,它不仅可以获取数据,还可以同时实现数据,而抓取页面数据需要60毫秒,而10k产品需要4秒钟。虽然这听起来不多,但我不能每次用户刷新搜索时都这么做 我可以缓存数据,但这确实在一定程

我目前有一个搜索,允许我过滤产品下来,为一些组合

例如,我可能从所有产品开始,然后按类别或流行商店进行选择——每次选择过滤器时,它都会简单地处理数据,显示每种类型过滤器的总数以及可能的选择。用户可以多次这样做以获得最终列表

我第一次与EF合作,搜索将有大约1万个产品

与Linq2Sql或SP相比,使用EF的主要区别在于,它不仅可以获取数据,还可以同时实现数据,而抓取页面数据需要60毫秒,而10k产品需要4秒钟。虽然这听起来不多,但我不能每次用户刷新搜索时都这么做

我可以缓存数据,但这确实在一定程度上限制了应用程序的上限或服务器场,尽管它现在符合要求

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


有人有什么想法吗

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

使用一些支持分页的控件


然后在select查询中相应地使用
.Skip()
.Take()

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

虽然我可能会在一个页面上显示10个产品,但我仍然需要知道有关过滤器的详细信息,选择了什么,仍然可以选择什么。@user1437135:你的意思是,像显示45个“匹配过滤器标准”中的10个一样?使用EF不是那么容易。例如,一个产品可以分为几个类别,因此我必须使用include。我还没有找到过滤包含属性的方法。