cptScarlet的鏈接很好,但是我不喜歡使用存儲過程,如果我不需要,我會盡可能地支持Entity Framework。這是我做了更改用戶名,使用EF 4.0和.NET 4.0:
- 右鍵項目 - >添加新項 - > ADO.NET實體數據模型
- 給它一個合適的名字,我選擇「MembershipModel.edmx」,然後點擊添加從數據庫
- 選擇生成,然後單擊下一步
- 添加到您的「aspnetdb的」數據庫連接(ASP.NET成員資格數據庫)
- 給它一個合適的名字,我選擇「MembershipEntities」
- 點擊下一步
- 鑽到桌子和選擇aspnet_Users
- 改變模型的命名空間MembershipModel
- 單擊Finish
現在你可以添加代碼來創建EF對象上下文和修改數據庫:
public void ChangeUserName(string currentUserName, string newUserName)
{
using (var context = new MembershipEntities())
{
// Get the membership record from the database
var currentUserNameLowered = currentUserName.ToLower();
var membershipUser = context.aspnet_Users
.Where(u => u.LoweredUserName == currentUserNameLowered)
.FirstOrDefault();
if (membershipUser != null)
{
// Ensure that the new user name is not already being used
string newUserNameLowered = newUserName.ToLower();
if (!context.aspnet_Users.Any(u => u.LoweredUserName == newUserNameLowered))
{
membershipUser.UserName = newUserName;
membershipUser.LoweredUserName = newUserNameLowered;
context.SaveChanges();
}
}
}
}
注意:我沒有在我的代碼中記錄應用程序ID。我通常只有一個應用程序使用ASP.NET會員數據庫,所以如果您有多個應用程序,則需要對此進行說明。
我們應該檢查拳頭是否存在任何外鍵http://stackoverflow.com/a/1374315/413032。如果不存在,我們應該問((如果有人使用它並且沒有密鑰),那麼我們可以更新用戶並觀察將會發生什麼。 – 2013-05-16 07:01:58