我正在开发一个 ASP.NET MVC 4 Web 应用程序。以下代码导致将在 UserProfile 表中创建两次用户。
...
WebSecurity.CreateUserAndAccount(UserName, Password);
var UserProfile = (from UserProf in _db.Users
where UserProf.UserName == UserName
select UserProf).FirstOrDefault();
UserCustomAttribute = new UserCustomAttribute();
UserCustomAttribute.UserProfile = UserProfile;
UserCustomAttribute.Name = "BelongsToAccountId";
UserCustomAttribute.Value = model.AgentModel.AccountId;
using (db = new xDb())
{
db.UserCustomAttributes.Add(UserCustomAttribute);
db.SaveChanges();
}
...
使用VS2012调试功能,发现调用时创建了一个入口
WebSecurity.CreateUserAndAccount(UserName, Password);
并且,调用时会创建副本
db.SaveChanges();
这很奇怪。我希望这SaveChanges()
被称为CreateUserAndAccount(...)
?!那么,如何在不复制创建用户的情况下向数据库添加内容呢?