次の方法で共有


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

このメソッドから制御が戻った時点で、オブジェクトが格納されます。

戻り値

オブジェクトが正常に取得された場合は truekey が一時的である場合、接続が false である場合、または valuenull である場合は null

例外

key の互換性のないメタデータ。

keynullです。

この例では、 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適用し、 がキャッチされたときに ObjectNotFoundExceptionfalse返します。

適用対象

こちらもご覧ください