ObjectContext.GetObjectByKey(EntityKey) Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Возвращает объект, имеющий указанный ключ сущности.
public:
System::Object ^ GetObjectByKey(System::Data::EntityKey ^ key);
public object GetObjectByKey (System.Data.EntityKey key);
member this.GetObjectByKey : System.Data.EntityKey -> obj
Public Function GetObjectByKey (key As EntityKey) As Object
Параметры
- key
- EntityKey
Ключ искомого объекта.
Возвращаемое значение
Объект Object, который является экземпляром типа сущности.
Исключения
Параметр key
имеет значение null
.
Объект не найден ни в объекте ObjectStateManager, ни в источнике данных.
Примеры
В этом примере создается EntityKey для сущности заданного типа, а затем извлекается сущность по ключу.
using (AdventureWorksEntities context =
new AdventureWorksEntities())
{
try
{
// Define the entity key values.
IEnumerable<KeyValuePair<string, object>> entityKeyValues =
new KeyValuePair<string, object>[] {
new KeyValuePair<string, object>("SalesOrderID", 43680) };
// Create the key for a specific SalesOrderHeader object.
EntityKey key = new EntityKey("AdventureWorksEntities.SalesOrderHeaders", entityKeyValues);
// Get the object from the context or the persisted store by its key.
SalesOrderHeader order =
(SalesOrderHeader)context.GetObjectByKey(key);
Console.WriteLine("SalesOrderID: {0} Order Number: {1}",
order.SalesOrderID, order.SalesOrderNumber);
}
catch (ObjectNotFoundException ex)
{
Console.WriteLine(ex.ToString());
}
}
Комментарии
Метод GetObjectByKey пытается получить объект с указанным ключом EntityKey из диспетчера ObjectStateManager. Если объект в данный момент не загружен в контекст объекта, запрос выполняется с попыткой вернуть объект из источника данных. Дополнительные сведения см. в разделе Запросы объектов.
Если объект невозможно найти, метод GetObjectByKey вызывает исключение ObjectNotFoundException. Чтобы избежать обработки этого исключения, взамен используйте метод TryGetObjectByKey.
Этот метод будет возвращать объекты в состоянии Deleted.
Временный ключ нельзя использовать для возврата объекта из источника данных.