ObjectContext.TryGetObjectByKey(EntityKey, Object) 메서드

정의

지정된 엔터티 키가 있는 개체를 반환합니다.Returns an object that has the specified entity key.

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

찾을 개체의 키입니다.The key of the object to be found.

value
Object

이 메서드의 반환 값에는 개체가 포함됩니다.When this method returns, contains the object.

반환

Boolean

개체가 검색되었으면 true이고,true if the object was retrieved successfully. key가 임시 키이거나 연결이 false이거나 valuenull이면 null입니다.false if the key is temporary, the connection is null, or the value is null.

예외

key의 메타데이터가 호환되지 않는 경우Incompatible metadata for key.

key이(가) null인 경우key is null.

예제

이 항목의 예제는 Microsoft SQL Server 제품 샘플: 데이터베이스를 기반으로 합니다.The example in this topic is based on the Microsoft SQL Server Product Samples: Database. 이 예제에서는 EntityKey 지정 된 형식의 엔터티에 대 한를 만든 다음 키로 엔터티를 검색 하려고 합니다.The example creates an EntityKey for an entity of the given type and then tries to retrieve an entity by key.

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.");
    }
}
Using context As New AdventureWorksEntities()
    Dim entity As Object = Nothing
    Dim entityKeyValues As IEnumerable(Of KeyValuePair(Of String, Object)) = _
        New KeyValuePair(Of String, Object)() {New KeyValuePair(Of String, Object)("SalesOrderID", 43680)}

    ' Create the key for a specific SalesOrderHeader object. 
    Dim key As New EntityKey("AdventureWorksEntities.SalesOrderHeaders", entityKeyValues)

    ' Get the object from the context or the persisted store by its key. 
    If context.TryGetObjectByKey(key, entity) Then
        Console.WriteLine("The requested " & entity.GetType().FullName & " object was found")
    Else
        Console.WriteLine("An object with this key could not be found.")
    End If
End Using

설명

TryGetObjectByKey 에서 지정 된를 가진 개체를 검색 하려고 시도 EntityKey ObjectStateManager 합니다.TryGetObjectByKey tries to retrieve an object that has the specified EntityKey from the ObjectStateManager. 개체가 현재 개체 컨텍스트에 로드 되지 않은 경우에는 데이터 소스에서 개체를 반환 하려고 할 때 쿼리가 실행 됩니다.If the object is currently not loaded into the object context, a query is executed in an attempt to return the object from the data source. 자세한 내용은 개체 쿼리합니다.For more information, see Object Queries.

TryGetObjectByKey ObjectNotFoundException GetObjectByKey 개체를 찾을 수 없을 때에서 발생 하는을 처리 하지 않도록 하려면 메서드를 사용 합니다.Use the TryGetObjectByKey method to avoid handling the ObjectNotFoundException raised by GetObjectByKey when the object cannot be found.

이 메서드는 상태의 개체를 반환 Deleted 합니다.This method will return objects in the Deleted state.

임시 키를 사용 하 여 데이터 소스에서 개체를 반환할 수 없습니다.A temporary key cannot be used to return an object from the data source.

TryGetObjectByKey메서드는 TryParse 메서드에 대 한 표준 .net 패턴 GetObjectByKey 을 적용 하 false 여이 catch 될 때를 반환 합니다 ObjectNotFoundException .The TryGetObjectByKey method applies the standard .NET TryParse pattern for the GetObjectByKey method, returning false when the ObjectNotFoundException is caught.

적용 대상

추가 정보