ObjectStateManager.GetObjectStateEntry Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Devuelve un ObjectStateEntry para un objeto específico o una entrada de relación.
Sobrecargas
| Nombre | Description |
|---|---|
| GetObjectStateEntry(EntityKey) |
Devuelve un ObjectStateEntry para el objeto o la entrada de relación con la clave especificada. |
| GetObjectStateEntry(Object) |
Devuelve un ObjectStateEntry para el objeto especificado. |
GetObjectStateEntry(EntityKey)
Devuelve un ObjectStateEntry para el objeto o la entrada de relación con la clave especificada.
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
Parámetros
Devoluciones
correspondiente ObjectStateEntry al objeto especificado EntityKey.
Excepciones
Cuando key es null.
Cuando no se encuentra el especificado key en el administrador de estado.
No existe ninguna entidad con el especificado EntityKey en .ObjectStateManager
Ejemplos
En este ejemplo se obtiene el ObjectStateEntry para el objeto especificado EntityKey de .ObjectStateManager A continuación, obtiene el valor actual de la SalesOrderHeader.PurchaseOrderNumber propiedad, cambia el valor de la propiedad y enumera a través de la colección de propiedades modificadas.
// 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());
}
}
Comentarios
Utilice el TryGetObjectStateEntry(EntityKey, ObjectStateEntry) método para devolver un ObjectStateEntry objeto sin tener que controlar el InvalidOperationException generado por el GetObjectStateEntry(EntityKey) método .
Se aplica a
GetObjectStateEntry(Object)
Devuelve un ObjectStateEntry para el objeto especificado.
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
Parámetros
- entity
- Object
al Object que pertenece el objeto ObjectStateEntry recuperado.
Devoluciones
correspondiente ObjectStateEntry al objeto especificado Object.
Excepciones
No existe ninguna entidad para el especificado Object en .ObjectStateManager
Comentarios
Utilice el TryGetObjectStateEntry(Object, ObjectStateEntry) método para devolver un ObjectStateEntry objeto sin tener que controlar el InvalidOperationException generado por el GetObjectStateEntry(Object) método .