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 @ 2011-09-03 15:16  玉开  阅读(2306)  评论(9编辑  收藏  举报