小编Iva*_*van的帖子

Linq在实体框架4中查询.表现糟糕

在我的项目中,我使用EntityFramework 4来处理数据.我通过简单的查询发现了可怕的性能问题.当我在EF4生成的SQL查询中查看分析器时,我感到震惊.

我的实体数据模型中有一些表:

数据模型

看起来很简单.我正在尝试从指定类别中选择所有相关导航属性的所有产品项目.

我写了这个LINQ查询:

ObjectSet<ProductItem> objectSet = ...; 
int categoryId = ...; 

var res = from pi in objectSet.Include("Product").Include("Inventory").Include("Inventory.Storage") 
where pi.Product.CategoryId == categoryId 
select pi;
Run Code Online (Sandbox Code Playgroud)

EF生成了这个sql查询:

SELECT   [Project1].[pintId1]          AS [pintId], 
[Project1].[pintId]           AS [pintId1], 
[Project1].[intProductId]     AS [intProductId], 
[Project1].[nvcSupplier]      AS [nvcSupplier], 
[Project1].[ nvcArticle]      AS [ nvcArticle], 
[Project1].[nvcBarcode]       AS [nvcBarcode], 
[Project1].[bIsActive]        AS [bIsActive], 
[Project1].[dtDeleted]        AS [dtDeleted], 
[Project1].[pintId2]          AS [pintId2], 
[Project1].[nvcName]          AS [nvcName], 
[Project1].[intCategoryId]    AS [intCategoryId], 
[Project1].[ncProductType]    AS [ncProductType], 
[Project1].[C1]               AS [C1], 
[Project1].[pintId3]          AS [pintId3], 
[Project1].[intProductItemId] AS [intProductItemId], 
[Project1].[intStorageId]     AS [intStorageId], 
[Project1].[dAmount]          AS …
Run Code Online (Sandbox Code Playgroud)

.net c# performance orm entity-framework

9
推荐指数
1
解决办法
1250
查看次数

标签 统计

.net ×1

c# ×1

entity-framework ×1

orm ×1

performance ×1