ObjectStateManager.GetObjectStateEntry 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.
Restituisce un oggetto ObjectStateEntry per una voce specifica di oggetto o relazione.
Overload
| Nome | Descrizione |
|---|---|
| GetObjectStateEntry(EntityKey) |
Restituisce un oggetto ObjectStateEntry per l'oggetto o la voce di relazione con la chiave specificata. |
| GetObjectStateEntry(Object) |
Restituisce un oggetto ObjectStateEntry per l'oggetto specificato. |
GetObjectStateEntry(EntityKey)
Restituisce un oggetto ObjectStateEntry per l'oggetto o la voce di relazione con la chiave specificata.
public:
System::Data::Objects::ObjectStateEntry ^ GetObjectStateEntry(System::Data::EntityKey ^ key);
public System.Data.Objects.ObjectStateEntry GetObjectStateEntry(System.Data.EntityKey key);
member this.GetObjectStateEntry : System.Data.EntityKey -> System.Data.Objects.ObjectStateEntry
Public Function GetObjectStateEntry (key As EntityKey) As ObjectStateEntry
Parametri
Valori restituiti
Oggetto corrispondente ObjectStateEntry per l'oggetto specificato EntityKey.
Eccezioni
Quando key è null.
Quando non è possibile trovare l'oggetto specificato key nel gestore dello stato.
Nessuna entità con l'oggetto specificato EntityKey esiste in ObjectStateManager.
Esempio
In questo esempio viene ottenuto l'oggetto ObjectStateEntry per l'oggetto specificato EntityKey da ObjectStateManager. Ottiene quindi il valore corrente della SalesOrderHeader.PurchaseOrderNumber proprietà, modifica il valore della proprietà ed enumera l'insieme di proprietà modificate.
// Specify the order to update.
int orderId = 43680;
using (AdventureWorksEntities context =
new AdventureWorksEntities())
{
try
{
var order = (from o in context.SalesOrderHeaders
where o.SalesOrderID == orderId
select o).First();
// Change the status of an existing order.
order.Status = 1;
// Delete the first item in the order.
context.DeleteObject(order.SalesOrderDetails.First());
// Create a new SalesOrderDetail object.
// You can use the static CreateObjectName method (the Entity Framework
// adds this method to the generated entity types) instead of the new operator:
// SalesOrderDetail.CreateSalesOrderDetail(1, 0, 2, 750, 1, (decimal)2171.2942, 0, 0,
// Guid.NewGuid(), DateTime.Today));
SalesOrderDetail detail = new SalesOrderDetail
{
SalesOrderID = 0,
SalesOrderDetailID = 0,
OrderQty = 2,
ProductID = 750,
SpecialOfferID = 1,
UnitPrice = (decimal)2171.2942,
UnitPriceDiscount = 0,
LineTotal = 0,
rowguid = Guid.NewGuid(),
ModifiedDate = DateTime.Now
};
order.SalesOrderDetails.Add(detail);
// Get the ObjectStateEntry for the order.
ObjectStateEntry stateEntry =
context.ObjectStateManager
.GetObjectStateEntry(order);
Console.WriteLine("State before SaveChanges() is called: {0}",
stateEntry.State.ToString());
// Save changes in the object context to the database.
int changes = context.SaveChanges();
Console.WriteLine("State after SaveChanges() is called: {0}",
stateEntry.State.ToString());
Console.WriteLine(changes.ToString() + " changes saved!");
Console.WriteLine("Updated item for order ID: "
+ order.SalesOrderID.ToString());
// Iterate through the collection of SalesOrderDetail items.
foreach (SalesOrderDetail item in order.SalesOrderDetails)
{
Console.WriteLine("Item ID: "
+ item.SalesOrderDetailID.ToString() + " Product: "
+ item.ProductID.ToString() + " Quantity: "
+ item.OrderQty.ToString());
}
}
catch (UpdateException ex)
{
Console.WriteLine(ex.ToString());
}
}
Commenti
Utilizzare il TryGetObjectStateEntry(EntityKey, ObjectStateEntry) metodo per restituire un ObjectStateEntry oggetto senza dover gestire l'oggetto InvalidOperationException generato dal GetObjectStateEntry(EntityKey) metodo .
Si applica a
GetObjectStateEntry(Object)
Restituisce un oggetto ObjectStateEntry per l'oggetto specificato.
public:
System::Data::Objects::ObjectStateEntry ^ GetObjectStateEntry(System::Object ^ entity);
public System.Data.Objects.ObjectStateEntry GetObjectStateEntry(object entity);
member this.GetObjectStateEntry : obj -> System.Data.Objects.ObjectStateEntry
Public Function GetObjectStateEntry (entity As Object) As ObjectStateEntry
Parametri
- entity
- Object
Oggetto Object a cui appartiene l'oggetto recuperato ObjectStateEntry .
Valori restituiti
Oggetto corrispondente ObjectStateEntry per l'oggetto specificato Object.
Eccezioni
Nessuna entità per l'oggetto specificato Object esiste in ObjectStateManager.
Commenti
Utilizzare il TryGetObjectStateEntry(Object, ObjectStateEntry) metodo per restituire un ObjectStateEntry oggetto senza dover gestire l'oggetto InvalidOperationException generato dal GetObjectStateEntry(Object) metodo .