Обновление записи с использованием MySQL, Entity Framework + Ext.NET - PullRequest
1 голос
/ 14 февраля 2011

У меня есть фрагмент кода, который я не могу заставить работать:

StoreDataHandler dataHandler = new StoreDataHandler(HttpContext.Request["data"]);
ChangeRecords<ChequeDiary> data = dataHandler.ObjectData<ChequeDiary>();

foreach (ChequeDiary item in data.Updated) {
    db.ChequeDiaries.Attach(item);
    db.Refresh(System.Data.Objects.RefreshMode.ClientWins, item);
}

Это предназначено для получения изменений и обновления базового объекта, но когда я вызываю

db.SaveChanges();

.. ничего не обновляется.Если я использую:

foreach (ChequeDiary item in data.Updated) {
    ChequeDiary obj = db.ChequeDiaries.FirstOrDefault(o => o.Id == item.Id);
    obj.BankedAmount = item.BankedAmount;
}

и explicity установить каждое свойство, это работает.Почему?!

1 Ответ

1 голос
/ 14 февраля 2011

Ваш первый пример, скорее всего, не помечает какие-либо свойства как измененные.Проверьте ObjectStateManager, чтобы подтвердить это.В общем случае вы должны изменить свойства после того, как вы прикрепите объект.

...