Art*_*tem 6 c# entity-framework entity-framework-core
我使用Entity Framework Core 1.1.0和EntityFrameworkCore.SqlServer 1.1.0作为DataBase提供程序(从注释添加此信息).和SQL Server 2014.
我有这个模型:
public class User
{
public int Id { get; set; }
public virtual ICollection<IdentityUserRole> Roles { get; }
}
public class IdentityUserRole
{
public int RoleId { get; set; }
public int UserId { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我用这个代码:
IQueryable<User> query = context.Set<User>();
IQueryable<User> query2 = query.Include(u => u.Roles);
Run Code Online (Sandbox Code Playgroud)
当我打电话给query.ToList()我时,我有一个SQL查询:
SELECT [u].[Id], [u].[Email], [u].[UserName]
FROM [User] AS [u]
Run Code Online (Sandbox Code Playgroud)
当我打电话时,query2.ToList()我有两个SQL查询:
1.
SELECT [u].[Id], [u].[Email], [u].[UserName]
FROM [User] AS [u]
ORDER BY [u].[Id]
Run Code Online (Sandbox Code Playgroud)
2.
SELECT [i].[UserId], [i].[RoleId]
FROM [IdentityUserRole<int>] AS [i]
WHERE EXISTS (
SELECT 1
FROM [User] AS [u]
WHERE [i].[UserId] = [u].[Id])
ORDER BY [i].[UserId]
Run Code Online (Sandbox Code Playgroud)
为什么EF添加ORDER BY [u].[Id]和ORDER BY [i].[UserId]SQL查询?一切正常,没有任何ORDER BY陈述.
我有这个问题,因为如果我打电话给query2.OrderByDescending(q => q.Id)我这个无效的SQL:
SELECT [u].[Id], [u].[Email], [u].[UserName]
FROM [User] AS [u]
ORDER BY [u].[Id] DESC, [u].[Id]
Run Code Online (Sandbox Code Playgroud)
并且SQL-server返回一个异常:
已按列表顺序多次指定列.
| 归档时间: |
|
| 查看次数: |
549 次 |
| 最近记录: |