通过


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它是实体类型的实例。

例外

参数 keynull.

在数据源中 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 状态的对象。

临时键不能用于从数据源返回对象。

适用于

另请参阅