CreateUserAndAccount和db.SaveChanges导致重复的用户输入

时间:2013-08-22 18:58:57

标签: c# asp.net-mvc authentication

我正在研究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(...)? 那么,如何在不重复创建用户的情况下向数据库添加内容?

0 个答案:

没有答案