Службы RIA — обновление во время вставки

Проблема: во время операции вставки объекта_A я хочу обновить свойство определенного объекта_B и обновить изменения. Я делаю это следующим образом:

public void InsertEntity_A(Entity_A entity_A)
{
    // fetch entity_B and change a property
    Entity_B entity_B = ObjectContext.Entity_B.SingleOrDefault(...);
    entity_B.Counter++;
    this.UpdateEntity_B(entity_B);

    // continue normal processing for entity_A
    if((entity_A.EntityState != ...) 
    ...
    ...
}

"UpdateEntity_B(...)" выдает ошибку о том, что entity_B не входит в текущий набор изменений. Как я могу этого добиться??

ТИА Хайко


person okieh    schedule 24.07.2012    source источник
comment
Как выглядит UpdateEntity()? Использует ли он другой ObjectContext? Вытягивает ли он что-нибудь из this.ChangeSet?   -  person Ed Chapel    schedule 25.07.2012
comment
UpdateEntity() — это код, сгенерированный службами RIA, и он выглядит так: this.ObjectContext.Entity_B.AttachAsModified(currentEntity_B, this.ChangeSet.GetOriginal(currentEntity_B)); Поскольку объект в настоящее время не находится в ChangeSet, всплывает ошибка.   -  person okieh    schedule 03.08.2012


Ответы (1)


Если выяснилось, что с помощью

ObjectContext.Entity_B.ApplyCurrentValues(entity_B);

вместо UpdateEntity() делает свое дело и, очевидно, сохраняет entity_B в базе данных. Может ли кто-нибудь подтвердить, что это правильный способ сделать это?

С уважением Хайко

person okieh    schedule 03.08.2012