相关疑难解决方法(0)

实体框架获取前10行

我在SQL数据库中有3个表

tblVideos:

VideoID     int PK
Title       varchar(100)
Decription  varchar(100)
Run Code Online (Sandbox Code Playgroud)

tblTags:

TagID       int PK
TagText     varchar(100)
Run Code Online (Sandbox Code Playgroud)

tblVideosToTags:

VideoID     int PK, FK to Videos
TagID       int PK, FK to Tags
Run Code Online (Sandbox Code Playgroud)

在Entity Framework(v6-latest-nightly-build)中,我有2个类,Video并且Tag具有多对多关系.我需要帮助构建符合以下条件的LINQ to Entities或LINQ to SQL查询:

来自标签的十大记录,主要用于.所以可能需要一些求和/计数/分组

asp.net-mvc linq-to-entities entity-framework linq-to-sql

3
推荐指数
1
解决办法
1万
查看次数

EF排序和分页 - 两次订购速度慢?

我有一个简单的实体,我的SQL Sever 2012数据库中有100,000个实体:

public class Entity
{
    public int Id { get; set; }
    public string Field1 { get; set; }
    public string Field2 { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我想在网格中显示这些内容,分页为100,000,太多而无法在一个屏幕上显示(并且效率不高).网格应该允许排序和过滤 - 显然所有这些操作中的3个最好在服务器上完成,EF应该翻译它们.

所以,让我们按字段1排序第二页500:

var items = context.Entities.OrderBy(e => e.Field1).Skip(500).Take(500);
Run Code Online (Sandbox Code Playgroud)

执行此查询时,需要12秒!所以我挖了它,发现它的翻译如下:

SELECT TOP (500) [Extent1].[Id]     AS [Id],
                 [Extent1].[Field1] AS [Field1],
                 [Extent1].[Field2] AS [Field2]               
FROM   (SELECT [Extent1].[Id]     AS [Id],
               [Extent1].[Field1] AS [Field1],
               [Extent1].[Field2] AS [Field2],
               row_number() OVER (ORDER BY [Extent1].[Field1] ASC) AS [row_number]
        FROM   [dbo].[Costs] AS [Extent1]) AS [Extent1]
WHERE …
Run Code Online (Sandbox Code Playgroud)

c# entity-framework entity-framework-6

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