2010-09-19 53 views
1

如果我有一个新的对象,那不是context.Saved()在ADO.NET中,除了另一个没有被保存的对象之外,我该如何判断?如何判断给定对象是否使用ADO.NET保存?

我将使用此信息来确定如何处理我的自定义自动增量功能。如果该对象已保存到数据库中,则我会往返数据库服务器。如果对象没有保存,那么我将在本地执行自动增量。

那么,给定2个ADO.NET对象,我该如何判断它们是否已被保存?

+0

odata是从哪里来的? – sblom 2010-09-19 17:11:37

+0

sblom - 我的理解是ADO.NET在线路上使用OData。我不确定在堆栈中查看对象是否已保存。 – LamonteCristo 2010-09-19 17:41:33

回答

0

假设您使用的是WCF数据服务(以前称为ADO.NET数据服务): 在您的客户端中,您有一个从DataServiceContext派生的类的实例。在这个实例中,有一个方法GetEntityDescriptor将实体实例作为参数。它返回一个具有State属性的EntityDescriptor对象。如果该属性已添加,则意味着新添加的对象尚未保存到服务器。如果State属性处于任何其他状态,则意味着对象已经发送到服务器(假设您没有使用某些高级内容,如调用AttachTo)。

+0

卡拉斯 - 我也可以使用这种方法来确定一个实体是否被跟踪? (用于未来可能的AttachTo使用) – LamonteCristo 2010-09-19 22:44:55

+0

是 - 如果实体未被跟踪,则GetEntityDescriptor将返回空值。 – 2010-09-20 20:21:03

相关问题