1
public class User {
    int Id { set; get; } // autogenerated on insert
    public string Username { set; get; }
}

然后在我的代码中的一些地方我有以下内容:

var user = new User();
user.Username = string.Format("user{0}", user.Id);
dbContext.User.Add(user);
dbContext.SaveChanges();
Debug.WriteLine(user.Username); // outputs "User0" when the Id is ..not 0
4

2 回答 2

1

您正在插入一个新创建的用户,而不是插入您创建的用户:

改变 :

var user = new User();
user.Username = string.Format("user{0}", user.Id);
dbContext.User.Add(new User());

至:

var user = new User();
user.Username = string.Format("user{0}", user.Id);
dbContext.User.Add(user);
于 2012-10-09T18:20:01.567 回答
0

这对您有用的唯一方法是,如果您的 User 首先有一个空Username属性,.SaveChanges()然后user.Username = string.Format(...)是 ,然后再次保存。即使您要通过直接 SQL 编写此代码,在 db 提交更改之前您也不知道行的 ID。

如果没有多次保存,您所要求的就无法编辑。

于 2012-10-09T18:27:42.443 回答