Как я могу узнать, был ли данный объект сохранен с помощью ADO.NET? - PullRequest
1 голос
/ 19 сентября 2010

Если у меня есть новый объект, который не является context.Saved () в ADO.NET, как я могу отличить это от другого объекта, который не был сохранен?используйте эту информацию, чтобы определить, как обрабатывать мою функцию автоинкремента.Если объект был сохранен в базе данных, я совершу поездку туда и обратно на сервер базы данных.Если объект не был сохранен, то я выполню мой автоинкремент локально.

Итак, учитывая 2 объекта ADO.NET, как я могу определить, сохранены они или нет?

1 Ответ

0 голосов
/ 19 сентября 2010

Предполагается, что вы используете службы данных WCF (раньше назывались ADO.NET Data Services): в вашем клиенте есть экземпляр класса, производный от DataServiceContext.В этом случае есть метод GetEntityDescriptor, который принимает экземпляр объекта в качестве аргумента.Он возвращает объект EntityDescriptor, который имеет свойство State.Если это свойство добавлено, это означает, что вновь добавленный объект еще не был сохранен на сервере.Если свойство State находится в каком-либо другом состоянии, это означает, что объект уже был отправлен на сервер (при условии, что вы не используете какие-либо дополнительные вещи, такие как вызов AttachTo).

...