我正在使用Entity Framework 4开发一个项目.拥有大约50个实体,大多数所有表都与用户表有关系.搜索用户有更多时间返回结果.在用户表中,我已经删除了导航属性,即使它花费更多时间. 主要是
主要是在网络上,为任何特定的场景/问题提供了性能指南.是否有可用于提高实体框架工作性能的通用检查表?
像动态搜索用户如下
var searchPredication = (from user in entities.Users where ((searchKeyword == "") || (searchField != "" && searchKeyword != "" && searchField == "BarCode" && user.BarCode == searchKeyword)|| (searchField == "LastName" && user.LastName == searchKeyword) || (searchField == "FirstName" && user.FirstName == searchKeyword))) && !user.IsDeleted select user).FirstOrDefault();
此外,我还需要提供有关EF中常见性能管理的更多信息.
没有任何“清单”,但这里有一些提示,以确保您的网站运行良好:>始终在dev数据库中保留大量数据,如果注入数百万个虚拟行,则在开发过程中会夸大性能问题.
>使用性能测试,如果我们有一个高容量的站点,我们每页至少设置一次测试,以便检查加载时间.这允许您选择外围页面.
>避免使用非常复杂的LINQ语句,它们通常(但并非总是)是错误的,大多数情况下您可以简单地实现.
>只要您拥有正确的数据,就立即枚举您的设置.这可以避免在显示代码中意外地使查询复杂化. (即使用ToList或ToArray)
>在复杂查询上使用EFProfiler或SQLProfiler来验证SQL看起来是否合理.
希望这有所帮助,整体表现更像是一门艺术,而不是一门科学.它有点滑动.