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
答案 0 :(得分: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);
答案 1 :(得分:0)
这对您有用的唯一方法是,如果您的用户首先使用空Username
属性,.SaveChanges()
,然后user.Username = string.Format(...)
,则再次保存。即使您是通过直接SQL编写的,在db提交更改之前,您也不知道该行的ID。
如果没有多次保存,编辑就无法满足您的要求。