Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 实体框架SQL Server Compact嵌套选择查询性能差_C#_Entity Framework_Sql Server Ce - Fatal编程技术网

C# 实体框架SQL Server Compact嵌套选择查询性能差

C# 实体框架SQL Server Compact嵌套选择查询性能差,c#,entity-framework,sql-server-ce,C#,Entity Framework,Sql Server Ce,所以,在问题的后面,我正在研究为什么SQL Server Compact的查询性能很差,从而阻塞了UI线程。我已禁用LazyLoading,并提前显式加载所需的数据 为了稍微隔离这一点,我在Northwind数据库上运行了一个测试,使用以下查询加载所有订单,并为每个订单加载关联的OrderDetails,为每个OrderDetail加载产品和供应商: 执行大约需要9秒 作为比较,我在本地SQLServerExpress上运行了Northwind数据库,并在

所以,在问题的后面,我正在研究为什么SQL Server Compact的查询性能很差,从而阻塞了UI线程。我已禁用LazyLoading,并提前显式加载所需的数据

为了稍微隔离这一点,我在Northwind数据库上运行了一个测试,使用以下查询加载所有订单,并为每个订单加载关联的OrderDetails,为每个OrderDetail加载产品和供应商:

执行大约需要9秒

作为比较,我在本地SQLServerExpress上运行了Northwind数据库,并在<0.1秒内完成


导致此查询中出现问题的.Select()有什么问题?为什么此选择导致SQL Server Compact的执行时间如此长,但在SQL Server上运行时没有问题?

您是否查看了生成的SQL(使用DbContext..Log)并使用SQL Server Compact Toolbox对其进行了分析?@ErikEJ两个数据库中的SQL看起来相同(尽管数据库之间的字段名不同),但主体结构是相同的。执行计划是不同的,但我希望它们会有所不同,因为SQL Server提供了额外的功能。没有什么不寻常的…您是否检查了基础表以比较记录、索引以及表上是否有触发器?任何这些事情都可能影响查询性能。还有一件事。。。如果手动运行生成的SQL,您会看到与通过EF得到的结果相同的结果吗?谢谢@DeadZone的评论。这个特定的查询/数据库只是一个例子(数据库是公开的)。我在所有SQL compact数据库中都遇到了这个问题,在这些数据库中,我使用.Include(..Select(…)类型模式加载子实体
entities.Orders.Include(o => o.Order_Details
                        .Select(od => od.Products.Suppliers))
                .Load();