首页 > 代码库 > 被Entity Framework Core的细节改进震撼了一下
被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 干的漂亮!
被Entity Framework Core的细节改进震撼了一下
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。