ObjectContext.CreateEntityKey(String, Object) 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
为特定对象创建实体键,如果实体键已存在,则返回该键。
public:
System::Data::EntityKey ^ CreateEntityKey(System::String ^ entitySetName, System::Object ^ entity);
public System.Data.EntityKey CreateEntityKey (string entitySetName, object entity);
member this.CreateEntityKey : string * obj -> System.Data.EntityKey
Public Function CreateEntityKey (entitySetName As String, entity As Object) As EntityKey
参数
- entitySetName
- String
实体对象所属实体集的完全限定名称。
- entity
- Object
要为其检索实体键的对象。
返回
对象的 EntityKey。
例外
当任一参数为 null
时。
当无法根据提供的参数成功构造实体键时。
示例
在此示例中,CreateEntityKey 用于检索现有对象的实体键。
private static void ApplyItemUpdates(SalesOrderDetail updatedItem)
{
// Define an ObjectStateEntry and EntityKey for the current object.
EntityKey key = default(EntityKey);
object originalItem = null;
using (AdventureWorksEntities context = new AdventureWorksEntities())
{
// Create the detached object's entity key.
key = context.CreateEntityKey("SalesOrderDetails", updatedItem);
// Get the original item based on the entity key from the context
// or from the database.
if (context.TryGetObjectByKey(key, out originalItem))
{
// Call the ApplyCurrentValues method to apply changes
// from the updated item to the original version.
context.ApplyCurrentValues(key.EntitySetName, updatedItem);
}
context.SaveChanges();
}
}
注解
EntityKey如果 不存在 ,entity
则CreateEntityKey方法会为其创建一个新键。
此方法用于确定具有相同 EntityKey 的对象是否已附加到 ObjectContext。 如果已附加了具有相同 EntityKey 的对象,则引发异常。 在调用 CreateEntityKey 方法之前,使用 EntityKey 方法尝试检索已分离对象的 Attach。