ObjectContext.GetObjectByKey(EntityKey) 메서드

정의

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

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

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

반환

Object

엔터티 형식의 인스턴스인 Object입니다.An Object that is an instance of an entity type.

예외

key 매개 변수가 null인 경우The key parameter is null.

ObjectStateManager 또는 데이터 원본에서 개체를 찾을 수 없는 경우The object is not found in either the ObjectStateManager or the data source.

예제

이 예제는 Microsoft SQL Server 제품 샘플: 데이터베이스를 기반으로 합니다.This example 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 fetches an entity by key.

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());
    }
}
Using context As New AdventureWorksEntities()
    Try
        ' Define the entity key values. 
        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. 
        Dim order As SalesOrderHeader = DirectCast(context.GetObjectByKey(key), SalesOrderHeader)

        Console.WriteLine("SalesOrderID: {0} Order Number: {1}", order.SalesOrderID, order.SalesOrderNumber)
    Catch ex As ObjectNotFoundException
        Console.WriteLine(ex.ToString())
    End Try
End Using

설명

GetObjectByKey 에서 지정 된를 가진 개체를 검색 하려고 시도 EntityKey ObjectStateManager 합니다.GetObjectByKey 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.

GetObjectByKeyObjectNotFoundException개체를 찾을 수 없는 경우을 발생 시킵니다.GetObjectByKey raises an ObjectNotFoundException when the object cannot be found. 이 예외를 처리 하지 않으려면 메서드를 대신 사용 TryGetObjectByKey 합니다.To avoid handling this exception, instead use the TryGetObjectByKey method.

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

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

적용 대상

추가 정보