ObjectContext.TryGetObjectByKey(EntityKey, Object) Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Возвращает объект, имеющий указанный ключ сущности.
public:
bool TryGetObjectByKey(System::Data::EntityKey ^ key, [Runtime::InteropServices::Out] System::Object ^ % value);
public bool TryGetObjectByKey (System.Data.EntityKey key, out object value);
member this.TryGetObjectByKey : System.Data.EntityKey * obj -> bool
Public Function TryGetObjectByKey (key As EntityKey, ByRef value As Object) As Boolean
Параметры
- key
- EntityKey
Ключ искомого объекта.
- value
- Object
Если этот метод возвращает значение, содержит объект.
Возвращаемое значение
true
, если объект был успешно извлечен. Значение false
, если ключ key
является временным, подключение равно значению null
или объект value
равен значению null
.
Исключения
Несовместимые метаданные для key
.
key
имеет значение null
.
Примеры
В этом примере создается EntityKey для сущности заданного типа, а затем выполняется попытка получить сущность по ключу.
using (AdventureWorksEntities context =
new AdventureWorksEntities())
{
Object entity = null;
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.
if (context.TryGetObjectByKey(key, out entity))
{
Console.WriteLine("The requested " + entity.GetType().FullName +
" object was found");
}
else
{
Console.WriteLine("An object with this key " +
"could not be found.");
}
}
Комментарии
Метод TryGetObjectByKey пытается получить объект с указанным ключом EntityKey из диспетчера ObjectStateManager. Если объект в данный момент не загружен в контекст объекта, запрос выполняется при попытке вернуть объект из источника данных. Дополнительные сведения см. в разделе Запросы объектов.
Используйте метод TryGetObjectByKey, чтобы избежать обработки исключения ObjectNotFoundException, вызванного методом GetObjectByKey, когда объект невозможно найти.
Этот метод будет возвращать объекты в состоянии Deleted.
Временный ключ не может использоваться для возврата объекта из источника данных.
Метод TryGetObjectByKey применяет стандартный шаблон .NET TryParse
для GetObjectByKey метода , возвращая false
при перехвате ObjectNotFoundException .