ObjectStateManager.GetObjectStateEntry Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Возвращает ObjectStateEntry для указанного объекта или записи связи.
Перегрузки
GetObjectStateEntry(EntityKey) |
Возвращает запись ObjectStateEntry для объекта или запись связи с указанным ключом. |
GetObjectStateEntry(Object) |
Возвращает запись ObjectStateEntry для указанного объекта. |
GetObjectStateEntry(EntityKey)
Возвращает запись ObjectStateEntry для объекта или запись связи с указанным ключом.
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
Параметры
Возвращаемое значение
Соответствующая запись ObjectStateEntry для заданного ключа EntityKey.
Исключения
Если значение параметра key
равно null
.
Когда указанный key
не удается найти в диспетчере состояния.
Сущность с указанным ключом EntityKey отсутствует в диспетчере ObjectStateManager.
Примеры
В этом примере возвращается ObjectStateEntry для заданного EntityKey из ObjectStateManager. Затем он получает текущее SalesOrderHeader.PurchaseOrderNumber
значение свойства, изменяет его значение и выполняет перечисление через коллекцию измененных свойств.
// 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());
}
}
Комментарии
Используйте метод , TryGetObjectStateEntry(EntityKey, ObjectStateEntry) чтобы вернуть ObjectStateEntry объект без обработки , вызванного InvalidOperationException методом GetObjectStateEntry(EntityKey) .
Применяется к
GetObjectStateEntry(Object)
Возвращает запись ObjectStateEntry для указанного объекта.
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
Параметры
- entity
- Object
Класс Object, которому принадлежит полученный объект ObjectStateEntry.
Возвращаемое значение
Соответствующая запись ObjectStateEntry для заданного ключа Object.
Исключения
Сущность для указанного ключа Object отсутствует в диспетчере ObjectStateManager.
Комментарии
Используйте метод , TryGetObjectStateEntry(Object, ObjectStateEntry) чтобы вернуть ObjectStateEntry объект без обработки , вызванного InvalidOperationException методом GetObjectStateEntry(Object) .