我正在開發一個項目(使用3層的方法),其中我使用的LINQ to SQL ... 我想更新用戶...的LINQ to SQL ::數據更新問題
,但我面臨一些問題。它不給我任何錯誤,但也不更新用戶細節
這裏是程序的順序;
在UpdateProfile.aspxString currentUser = Session["BMUser"].ToString();
String displayName = txtDisplayName.Text;
String username = currentUser;
String emailAddress = txtEmailAddress.Text;
String secretQuestion = txtSecretQuestion.Text;
String secretAnswer = txtSecretAnswer.Text;
if (UserManager.UpdateProfile(username, displayName, emailAddress, secretQuestion, secretAnswer))
{
lblStatus.Text = "Profile Updated";
}
else
lblStatus.Text = "Unable to Update Profile";
的的UserManager
是BLL
類public class UserManager
{
public static bool UpdateProfile(String username, String displayName, String emailAddress, String secretQuestion, String secretAnswer)
{
// This method will return BM_User (BM_User in entity class generated by LINQ TO SQL)
BM_User user = UserCatalog.GetUserByName(username);
if (user != null)
{
user.DisplayName = displayName;
user.EmailAddress = emailAddress;
user.SecretQuestion = secretQuestion;
user.SecretAnswer = secretAnswer;
if (UserManagerDAO.UpdateUser(user, false))
{
//HttpContext.Current.Session["BMUser"] = userToUpdate;
return true;
}
else
return false;
}
else
return false;
}
}
最後UserManagerDAO
public class UserManagerDAO
{
public static bool UpdateUser(BM_User user, bool changeLoginDateTime)
{
BugManDataContext db = new BugManDataContext();
if (changeLoginDateTime == true)
user.LastLoginDate = DateTime.Now;
db.SubmitChanges();
return true;
}
}
在此之後,當我得到這個更新的用戶的細節。它顯示了我以前的細節。意味着它沒有更新的用戶與新的細節...
親切解決這個問題
hmm。好的如何解決這個問題.... ????如果我做db.BM_User.Attach(用戶)它給我錯誤。無法附加此實體。它是在其他地方聲明的。這不可能。 – Mohsan 2009-06-11 18:15:41
我認爲你應該再次看看你的類設計,並且可能在你的「UserManagerDAO」類中處理DataContext,並且GetUserByName(username)不應該在你的DAO類中。 – CMS 2009-06-11 18:22:17