var m = new 你的Model();
db.你的Model.add(m);
db.SaveChange();
Response.Write(m.Id); //执行.SaveChange()保存后就直接可以取得id值了.
保存前没有id值.
Entity Framework在将数据插入数据库时,如果主键字段是自增标识列,会将该自增值返回给实体对象对应的属性。
比如下面添加博客随笔至数据库的示例代码:
var blogPost = new BlogPost()
{
Author = "博客园",
Title = "程序员的网上家园"
};
using (BlogDbContext context = new BlogDbContext())
{
context.BlogPosts.Add(blogPost);
context.SaveChanges();
return blogPost.ID;
}
SaveChanges()之后,blogPost.ID的值就是数据库中对应自增标识列的值。
看一下Entity Framework生成的SQL语句:
1 exec sp_executesql N'insert [dbo].[blog_Content]([Title],[Author]) 2 values (@0, @1) 3 select [ID] 4 from [dbo].[blog_Content] 5 where @@ROWCOUNT > 0 and [ID] = scope_identity()', 6 N'@0 nvarchar(128),@1 nvarchar(128),',@0=N'程序员的网上家园',@1=N'博客园'