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

在此方法返回时包含对象。

返回

如果成功检索到对象,则为 true。 如果 key 是临时的,或者连接为 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 的对象。

临时键无法用于从数据源返回对象。

方法TryGetObjectByKeyGetObjectByKey 方法应用标准 .NET TryParse 模式,在捕获 时ObjectNotFoundException返回 false

适用于

另请参阅