я занимаюсь разработкой проекта (с использованием 3-х уровневая подход), в котором я использую LINQ TO SQL ... я хочу, чтобы обновить пользователя ...LINQ TO SQL :: Проблемы обновления данных
, но я сталкиваясь с какой-то проблемой. это не дает мне никакой ошибки, но также не обновляет деталь пользователя.
вот последовательность программ;
в UpdateProfile.aspx
String 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
Я думаю, вам стоит снова взглянуть на свой классный дизайн и, возможно, обработать DataContext в вашем классе UserManagerDAO, также GetUserByName (имя пользователя) также не должно быть на вашем классе DAO? – CMS
Метод GetUserByName (имя пользователя) является частью UserCatalog, который фактически вызывает метод GetUserByName (имя пользователя) класса UserManagerDAO ... – Mohsan