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

これが機能する唯一の方法は、最初に空のUsernameプロパティを持つ User を持ち、.SaveChanges()次にuser.Username = string.Format(...)を保存してから、再度保存することです。これを単純な SQL で記述したとしても、データベースが変更をコミットするまで行の ID はわかりません。

あなたが求めているのは、複数の保存なしでは編集できません。

于 2012-10-09T18:27:42.443 に答える