ObjectStateManager.TryGetObjectStateEntry Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Hiermee wordt geprobeerd een ObjectStateEntry object te retourneren voor een specifiek object of een relatievermelding.
Overloads
| Name | Description |
|---|---|
| TryGetObjectStateEntry(EntityKey, ObjectStateEntry) |
Hiermee wordt geprobeerd het bijbehorende ObjectStateEntry voor het object of de relatie met het opgegeven EntityKeyobject op te halen. |
| TryGetObjectStateEntry(Object, ObjectStateEntry) |
Probeert de corresponderende ObjectStateEntry voor de opgegeven Objectop te halen. |
TryGetObjectStateEntry(EntityKey, ObjectStateEntry)
Hiermee wordt geprobeerd het bijbehorende ObjectStateEntry voor het object of de relatie met het opgegeven EntityKeyobject op te halen.
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
Parameters
- entry
- ObjectStateEntry
Wanneer deze methode wordt geretourneerd, bevat een ObjectStateEntry voor de opgegeven EntityKey deze parameter wordt niet-geïnitialiseerd doorgegeven.
Retouren
Een Booleaanse waarde die is true als er een corresponderende ObjectStateEntry waarde is voor de opgegeven EntityKeywaarde; anders. false
Uitzonderingen
Er wordt een null (Nothing in Visual Basic) opgegeven voor key.
Voorbeelden
In het volgende voorbeeld wordt geprobeerd de corresponderende ObjectStateEntry voor de opgegeven EntityKeyop te halen.
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");
}
}
In het volgende voorbeeld wordt de TryGetObjectStateEntry(EntityKey, ObjectStateEntry) methode voor het geretourneerde object gebruikt ObjectStateManager om een object op te halen op basis van de entiteitssleutel.
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();
}
}
Opmerkingen
Gebruik TryGetObjectStateEntry(EntityKey, ObjectStateEntry) dit om een ObjectStateEntry retour te retourneren zonder dat u de InvalidOperationException gegenereerde GetObjectStateEntry(EntityKey) methode hoeft te verwerken.
Van toepassing op
TryGetObjectStateEntry(Object, ObjectStateEntry)
Probeert de corresponderende ObjectStateEntry voor de opgegeven Objectop te halen.
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
Parameters
- entity
- Object
De Object waartoe de opgehaalde ObjectStateEntry behoort.
- entry
- ObjectStateEntry
Wanneer deze methode wordt geretourneerd, bevat de ObjectStateEntry voor de opgegeven EntityKey deze parameter niet-geïnitialiseerd.
Retouren
Een Booleaanse waarde die is true als er een corresponderende ObjectStateEntry waarde is voor het opgegeven object; falseanders.
Opmerkingen
Gebruik de TryGetObjectStateEntry(Object, ObjectStateEntry) methode om een ObjectStateEntry retour te retourneren zonder de InvalidOperationException gegenereerde GetObjectStateEntry(Object) methode te hoeven afhandelen.