返回LINQ到EF的最后一个插入ID

时间:2014-04-30 19:23:07

标签: c# linq entity-framework

所以我已经看到了......

Get Auto Identity Key after Insert via EF

看起来很多,我注意到DbContext.SaveChanges()会返回int

所以我想知道的是,我们不能做这样的事情:

public string username { get; protected set; }
public string password { get; protected set; }

public int RegisterUser()
{
    DbContext.users u = new DbContext.users();
    if (!String.IsNullOrEmpty(username))
    {
        u.username = username;
    }
    if (!String.IsNullOrEmpty(password))
    {
        u.password = password;
    }

    DbContext.users.Add(u);
    return DbContext.SaveChanges();
}

intellisense不清楚SaveChanges返回的int值是什么,所以我只想弄清楚,这是&#34的值是0/1;是的吗?"或者"没有它破坏"或者这是新记录的id值?

2 个答案:

答案 0 :(得分:2)

在插入带有身份密钥的项目后调用db.SaveChanges后,将设置该对象的ID。

即。致电db.SaveChanges后,将设置u.ID

答案 1 :(得分:1)

要获取ID(自动生成),您可以检查用户对象。

u.ID //assuming it exists.

SaveChanges()返回的int是写入底层数据库的对象数。