ObjectContext.GetObjectByKey(EntityKey) 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
返回具有指定实体键的对象。
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 的对象。
临时键无法用于从数据源返回对象。