ObjectContext.CreateEntityKey(String, Object) 方法

定义

为特定对象创建实体键,如果实体键已存在,则返回该键。

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 时。

entitySetName 为空时。

- 或 -

entity 对象的类型不存在于实体集中时。

- 或 -

entitySetName 未完全限定时。

当无法根据提供的参数成功构造实体键时。

示例

在此示例中,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如果 不存在 ,entityCreateEntityKey方法会为其创建一个新键。

此方法用于确定具有相同 EntityKey 的对象是否已附加到 ObjectContext。 如果已附加了具有相同 EntityKey 的对象,则引发异常。 在调用 CreateEntityKey 方法之前,使用 EntityKey 方法尝试检索已分离对象的 Attach

适用于