EntityFramework 的一个问题

使用EntityFramework的Code first时发现这么一个问题:

下文中涉及到的数据表名字为Roles,这张表中只有两个字段一个自增长的int类型ID,另外一个是NVARCHAR类型的RoleName

新添一条Roles记录的C#语句如下:

using(var db = new MyDbContext()){
    db.Roles.Add(new Role{RoleName = "管理员"});
    db.SaveChanges();
}

其中MyDbContext是已经定义好的DbContext子类。

以上c#,执行如下两条sql语句:

insert [Roles]([RoleName])values (@0);
select [ID]from [Roles]where [ID] = @@IDENTITY  

问题出在第二条语句的写法上,第二条语句和下面语句是完全等效的,但是entity framework的写法无疑是需要做数据表查询的

SELECT @@IDENTITY AS [ID]

这个是为什么呢?发到首页上大家帮忙看下,谢谢了

posted @   玉开  阅读(2307)  评论(9编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
点击右上角即可分享
微信分享提示