zoukankan      html  css  js  c++  java
  • 被Entity Framework Core的细节改进震撼了一下

    今天用 SQL Server Profiler 查看 Entity Framework Core 生成的 SQL 语句时,突然发现一个细节改进,并且被它震撼了一下:

    exec sp_executesql N'SELECT [u].[UserId]
    FROM [Users] AS [u]
    WHERE [u].[LoginName] = @__loginName_0',N'@__loginName_0 nvarchar(128)',@__loginName_0=N'test'

    震撼之处就是这个 u(表的别名),它可不是 EF Core 随意起的名字,而是来自 LINQ 代码中的命名:

    public IQueryable<User> GetByLoginName(string loginName)
    {
        return _users.Where(u => u.LoginName == loginName);
    }

    对比一下 Entity Framework 生成的 SQL 语句:

    exec sp_executesql N'SELECT TOP (1) 
        [Extent1].[UserID] AS [UserID]    
        FROM [dbo].[uc_Users] AS [Extent1]
        WHERE (([Extent1].[LoginName] = @p__linq__0)',N'@p__linq__0 nvarchar(128)',@p__linq__0=N'test'

    这里的 Extent1 就是随意起的名字。

    嗯,Entity Framework Core 干的漂亮!

  • 相关阅读:
    python mysql操作
    常用sql语句总结
    python 正则表达式总结
    hdu 6199 dp
    hdu 6212 区间dp
    hdu 6214 割边最少的最小割
    2017沈阳网络赛G XOR 分块(分类讨论sqrt)
    HDU 6166 二进制分组
    hdu 6194 后缀数组
    hdu 6201 树分治
  • 原文地址:https://www.cnblogs.com/dudu/p/6309037.html
Copyright © 2011-2022 走看看