стандарт обновления linq to sql - PullRequest
5 голосов
/ 29 июня 2011

Так что я знаю, что есть много вопросов о том, как обновить БД с помощью linq для SQL, мой вопрос, я делаю это в принятом стандарте?

вот мой код:

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        //load data to page
    }
    else
    {
        using (var db = new App_Data.MyDataContext())
        {
            var Query = (from p in db.peoples
                         where p.ipeople_ID == 59225
                         select p).Single();

            Query.cFirstName = FirstName.Value;

            try { db.SubmitChanges(); }
            catch (ChangeConflictException)
            {
                db.ChangeConflicts.ResolveAll(RefreshMode.KeepChanges);
                db.SubmitChanges();
            }
        }
    }
}

Я изучаю asp.net методом проб и ошибок (и много поисков в Google!), Так что я знаю, что это сработает, просто не знаю, рассмеет ли этот код меня из конференции!: D

Спасибо

Ответы [ 2 ]

2 голосов
/ 29 июня 2011

Некоторые изменения:

Я бы переместил вашу логику из события загрузки страницы и явно вызвал событие сохранения / обновления.

Я бы разрешил конфликт изменений, если бы это произошло ... Я бы не скрывал эту ошибку и не пытался повторно отправить изменения.

2 голосов
/ 29 июня 2011

Это выглядит довольно стандартно для меня, в своем подходе. Однако я бы предложил другой, более простой синтаксис для извлечения отдельных строк:

db.Peoples.SingleOrDefault(p => p.ipeople_ID == 59225)

Таким образом, вы получите NULL, если запись не существует. Single выдаст исключение, если запись не найдена. Я также выделил бы код обновления в нажатие кнопки при минимуме , обновление человека непосредственно в Post back кажется немного странным.

Мне также нравятся строчные переменные для локальных переменных, но я не буду вдаваться в подробности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...