使用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]
这个是为什么呢?发到首页上大家帮忙看下,谢谢了