EF: ApplyPropertyChanges
От: FreddieM  
Дата: 25.10.08 18:30
Оценка:
Объясните плз. логику с ApplyPropertyChanges... Я просто хочу приаттачить объект как modified, но не получается...

using (var ctx = new SAMPLE_DBEntities())
{
    Department newDep = new Department();
    newDep.Name = "New Dep4";

    newDep.Id = 1;
    newDep.EntityKey = new System.Data.EntityKey("SAMPLE_DBEntities.Department", "Id", 1);
    
    ctx.Attach(newDep);
    ctx.ApplyPropertyChanges("SAMPLE_DBEntities.Department", newDep);
    ctx.SaveChanges();
}
Re: EF: ApplyPropertyChanges
От: QrystaL Украина  
Дата: 26.10.08 06:01
Оценка:
Здравствуйте, FreddieM, Вы писали:

FM>Объясните плз. логику с ApplyPropertyChanges... Я просто хочу приаттачить объект как modified, но не получается...


FM>
FM>using (var ctx = new SAMPLE_DBEntities())
FM>{
FM>    Department newDep = new Department();
FM>    newDep.Name = "New Dep4";

FM>    newDep.Id = 1;
FM>    newDep.EntityKey = new System.Data.EntityKey("SAMPLE_DBEntities.Department", "Id", 1);
    
FM>    ctx.Attach(newDep);
FM>    ctx.ApplyPropertyChanges("SAMPLE_DBEntities.Department", newDep);
FM>    ctx.SaveChanges();
FM>}
FM>


ApplyPropertyChanges используется в том случае, когда нужно сохранить изменения Detached объекта, который уже существует в БД.
1. Загружаем в контекст оригинальный объект (путей LINQ to Entities запроса или через Attach)
2. Вызываем ApplyPropertyChanges.

Подробнее можно почитать здесь http://msdn.microsoft.com/en-us/library/bb896271.aspx
Re[2]: EF: ApplyPropertyChanges
От: FreddieM  
Дата: 27.10.08 07:28
Оценка:
Здравствуйте, QrystaL, Вы писали:

QL>Здравствуйте, FreddieM, Вы писали:


FM>>Объясните плз. логику с ApplyPropertyChanges... Я просто хочу приаттачить объект как modified, но не получается...


FM>>
FM>>using (var ctx = new SAMPLE_DBEntities())
FM>>{
FM>>    Department newDep = new Department();
FM>>    newDep.Name = "New Dep4";

FM>>    newDep.Id = 1;
FM>>    newDep.EntityKey = new System.Data.EntityKey("SAMPLE_DBEntities.Department", "Id", 1);
    
FM>>    ctx.Attach(newDep);
FM>>    ctx.ApplyPropertyChanges("SAMPLE_DBEntities.Department", newDep);
FM>>    ctx.SaveChanges();
FM>>}
FM>>


QL>ApplyPropertyChanges используется в том случае, когда нужно сохранить изменения Detached объекта, который уже существует в БД.

QL>1. Загружаем в контекст оригинальный объект (путей LINQ to Entities запроса или через Attach)
QL>2. Вызываем ApplyPropertyChanges.

QL>Подробнее можно почитать здесь http://msdn.microsoft.com/en-us/library/bb896271.aspx


Я загружаю объект по ид, затем отдаю его на изменение, после чего мне надо сохранить его со всеми изменениями в другом контексте. Вроде, стандартная ситуация... Как такое сделать? Или мне обязательно в базу сходить за оригинальным объектом и потом применить ApplyPropertyChanges?
Re[3]: EF: ApplyPropertyChanges
От: QrystaL Украина  
Дата: 27.10.08 07:35
Оценка: 2 (1)
FM>Я загружаю объект по ид, затем отдаю его на изменение, после чего мне надо сохранить его со всеми изменениями в другом контексте. Вроде, стандартная ситуация... Как такое сделать? Или мне обязательно в базу сходить за оригинальным объектом и потом применить ApplyPropertyChanges?

Оригинальный объект должен находиться в контексте. Соответственно, можно или не уничтожать контекст, или где-то хранить оригинальный объект и перед сохранением сделать ему Attach, или загрузить его снова из БД в контекст.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.