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 не существует entity, CreateEntityKey метод создает для него новый ключ.

Этот метод используется, чтобы определить, присоединен ли уже объект, который имеет такой же ключ EntityKey, к классу ObjectContext или нет. Если объект, который имеет такой же ключ EntityKey, уже присоединен, вызывается исключение. Используйте метод CreateEntityKey, чтобы пытаться получить ключ EntityKey отсоединенного объекта перед тем, как вызвать метод Attach.

Применяется к