次の方法で共有


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 状態のオブジェクトを返します。

一時キーを使用してデータ ソースからオブジェクトを取得することはできません。

適用対象

こちらもご覧ください