ObjectStateManager.TryGetObjectStateEntry Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Tenta di restituire un oggetto ObjectStateEntry per una voce di oggetto o di relazione specifica.
Overload
| TryGetObjectStateEntry(EntityKey, ObjectStateEntry) |
Tenta di recuperare l'oggetto ObjectStateEntry corrispondente per l'oggetto o la relazione con l'oggetto EntityKey specificato. |
| TryGetObjectStateEntry(Object, ObjectStateEntry) |
Tenta di recuperare l'oggetto ObjectStateEntry corrispondente per l'oggetto Object specificato. |
TryGetObjectStateEntry(EntityKey, ObjectStateEntry)
Tenta di recuperare l'oggetto ObjectStateEntry corrispondente per l'oggetto o la relazione con l'oggetto EntityKey specificato.
public:
bool TryGetObjectStateEntry(System::Data::EntityKey ^ key, [Runtime::InteropServices::Out] System::Data::Objects::ObjectStateEntry ^ % entry);
public bool TryGetObjectStateEntry(System.Data.EntityKey key, out System.Data.Objects.ObjectStateEntry entry);
member this.TryGetObjectStateEntry : System.Data.EntityKey * ObjectStateEntry -> bool
Public Function TryGetObjectStateEntry (key As EntityKey, ByRef entry As ObjectStateEntry) As Boolean
Parametri
- entry
- ObjectStateEntry
Quando termina, questo metodo contiene un oggetto ObjectStateEntry per l'oggetto EntityKey specificato. Questo parametro viene passato senza inizializzazione.
Restituisce
Valore Boolean che è true se è presente un oggetto ObjectStateEntry corrispondente per l'oggetto EntityKey specificato. In caso contrario, false.
Eccezioni
Viene fornito un valore null (Nothing in Visual Basic) per key.
Esempio
Nell'esempio seguente viene eseguito un tentativo di recuperare l'oggetto corrispondente ObjectStateEntry per l'oggetto specificato EntityKey.
int orderId = 43680;
using (AdventureWorksEntities context =
new AdventureWorksEntities())
{
ObjectStateManager objectStateManager = context.ObjectStateManager;
ObjectStateEntry stateEntry = null;
var order = (from o in context.SalesOrderHeaders
where o.SalesOrderID == orderId
select o).First();
// Attempts to retrieve ObjectStateEntry for the given EntityKey.
bool isPresent = objectStateManager.TryGetObjectStateEntry(((IEntityWithKey)order).EntityKey, out stateEntry);
if (isPresent)
{
Console.WriteLine("The entity was found");
}
}
Nell'esempio seguente viene utilizzato il metodo TryGetObjectStateEntry(EntityKey, ObjectStateEntry) sull'oggetto ObjectStateManager restituito per ottenere un oggetto in base alla relativa chiave di entità.
private static void ApplyItemUpdates(SalesOrderDetail originalItem,
SalesOrderDetail updatedItem)
{
using (AdventureWorksEntities context =
new AdventureWorksEntities())
{
context.SalesOrderDetails.Attach(updatedItem);
// Check if the ID is 0, if it is the item is new.
// In this case we need to chage the state to Added.
if (updatedItem.SalesOrderDetailID == 0)
{
// Because the ID is generated by the database we do not need to
// set updatedItem.SalesOrderDetailID.
context.ObjectStateManager.ChangeObjectState(updatedItem, System.Data.EntityState.Added);
}
else
{
// If the SalesOrderDetailID is not 0, then the item is not new
// and needs to be updated. Because we already added the
// updated object to the context we need to apply the original values.
// If we attached originalItem to the context
// we would need to apply the current values:
// context.ApplyCurrentValues("SalesOrderDetails", updatedItem);
// Applying current or original values, changes the state
// of the attached object to Modified.
context.ApplyOriginalValues("SalesOrderDetails", originalItem);
}
context.SaveChanges();
}
}
Commenti
Utilizzare il metodo TryGetObjectStateEntry(EntityKey, ObjectStateEntry) per restituire un oggetto ObjectStateEntry senza dovere gestire l'eccezione InvalidOperationException generata dal metodo GetObjectStateEntry(EntityKey).
Si applica a
TryGetObjectStateEntry(Object, ObjectStateEntry)
Tenta di recuperare l'oggetto ObjectStateEntry corrispondente per l'oggetto Object specificato.
public:
bool TryGetObjectStateEntry(System::Object ^ entity, [Runtime::InteropServices::Out] System::Data::Objects::ObjectStateEntry ^ % entry);
public bool TryGetObjectStateEntry(object entity, out System.Data.Objects.ObjectStateEntry entry);
member this.TryGetObjectStateEntry : obj * ObjectStateEntry -> bool
Public Function TryGetObjectStateEntry (entity As Object, ByRef entry As ObjectStateEntry) As Boolean
Parametri
- entity
- Object
Oggetto Object a cui appartiene l'oggetto ObjectStateEntry recuperato.
- entry
- ObjectStateEntry
Quando termina, questo metodo contiene l'oggetto ObjectStateEntry per l'oggetto EntityKey specificato. Questo parametro viene passato senza inizializzazione.
Restituisce
Valore booleano che è true se è presente un oggetto ObjectStateEntry corrispondente per l'oggetto specificato. In caso contrario false.
Commenti
Utilizzare il metodo TryGetObjectStateEntry(Object, ObjectStateEntry) per restituire un oggetto ObjectStateEntry senza dovere gestire l'eccezione InvalidOperationException generata dal metodo GetObjectStateEntry(Object).