powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / EF 4.1 Code First обновление клонированного экземпляра
2 сообщений из 2, страница 1 из 1
EF 4.1 Code First обновление клонированного экземпляра
    #37617031
GFX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброго времени суток.

Имеется вот такой простой код:

Код: c#
1.
2.
3.
4.
5.
6.
7.
 MyDataContext dc = new MyDataContext();
            Order order = dc.Order.Where(x => x.id == 5).SingleOrDefault();
            //копируем и редактируем.
            Order clone = (Order)order.Clone();
            clone.idCustomer = 1;
            //после редактирования сохраняем
            dc.SaveChanges();



Т.е. получили запись, склонировали, изменили и теперь ее нужно сохранить. Но ничего не происходит(update не вызывается).
Видимо потому что при клонировании экземпляра он становится dettached, как отклонированный
экземпляр опять приаттачить и сохранить изменения?

если сделать перед SaveChanges - dc.Order.Attach(clone);
то получаем вот такую ошибку. An object with the same key already exists in the ObjectStateManager.
Кто как это поборол.
Спасибо!
...
Рейтинг: 0 / 0
EF 4.1 Code First обновление клонированного экземпляра
    #37617101
GFX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в таком случае нужно вместо Attach делать вот так
dc.Entry(order).CurrentValues.SetValues(clone);

Теперь получается что в репозиторий нужно передавать два параметра. Что есть на мой взгляд очень не хорошо...
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / EF 4.1 Code First обновление клонированного экземпляра
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]