Entity Framework 4 Постоянство контекста POCO в службах - PullRequest
1 голос
/ 23 июля 2010

У меня есть служба WCF, которая использует платформу сущностей для извлечения записей из базы данных и сопоставления их с объектами POCO.Эти объекты POCO затем возвращаются клиентскому приложению.

Допустим, клиентское приложение изменяет некоторые свойства одного из этих объектов POCO, а затем отправляет его обратно в службу WCF для сохранения.Насколько я вижу, этот объект POCO полностью отключается от контекста структуры сущностей.В настоящий момент я сохраняю это, создавая новый объект контекста и снова извлекая объект POCO из базы данных, затем я копирую значения свойств объекта POCO, переданные методу, в объект POCO, который просто извлекается из базы данных, затем вызываю saveв контексте.Это лучший способ сделать это или есть более простой метод?

1 Ответ

1 голос
/ 23 июля 2010

Проблема здесь в том, что EF отслеживает прикрепленные объекты, используя собственный уникальный идентификатор для каждого извлеченного объекта, отличный от первичного ключа записи в вашей базе данных.Это свойство, конечно, не помечено атрибутом DataMember, поэтому при отправке через службу WCF вы теряете ключ, который использовался EF для его отслеживания.При десериализации объекта это уже не тот же точный объект, а другой, более простой, содержащий только свойства, отмеченные атрибутом DataMember.Поэтому, когда служба получает их снова, вы, конечно, теряете связь между объектом и EF.

Пробовали ли вы присоединить объект к контексту?Я думаю, что это должно работать, но я сам не пробовал.

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