ObjectContext.TryGetObjectByKey(EntityKey, Object) メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
指定されたエンティティ キーを持つオブジェクトを返します。
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
。
key
が一時的である場合、接続が false
である場合、または value
が null
である場合は 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適用し、 がキャッチされたときに ObjectNotFoundException をfalse
返します。