Почему мой код не обновляет базу данных? - PullRequest
2 голосов
/ 30 октября 2011

посмотрите на эти два кода

  1. First:

    Slide _Slide = DataContext.Slides.SingleOrDefault(rec => rec.Id == _SlideObj.Id);
    _Slide = _SlideObj;            
    DataContext.SaveChanges();
    
  2. Второе:

    Slide _Slide = DataContext.Slides.SingleOrDefault(rec => rec.Id == _SlideObj.Id);
    _Slide.Title = _SlideObj.Title;
    _Slide.Description = _SlideObj.Description;
    DataContext.SaveChanges();
    

Первый код обновляет не базу данных, а второй. Зачем? Как я могу изменить свой код для выполнения операции обновления в первом методе? (Мне нравится использовать первый метод)

Ответы [ 3 ]

5 голосов
/ 30 октября 2011

Первое только изменяет значение переменной на другую ссылку.Это на самом деле не обновляет объект в любом случае.Контекст данных отслеживает объект .

3 голосов
/ 30 октября 2011

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

0 голосов
/ 02 ноября 2011

Проблема первого подхода заключается в дизайне и не имеет ничего общего с используемой платформой.

Вызывая: _Slide = _SlideObj;
вы говорите _Slide указывать на _SlideObj вместоно в памяти свойства Title и Description для предыдущего указателя на _Slider остаются неизменными.

Следовательно, это нормальное поведение.

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