Partage via


EntityKey Classe

Définition

Fournit une référence durable à un objet qui est une instance d'un type d'entité.

public ref class EntityKey sealed : IEquatable<System::Data::EntityKey ^>
[System.Runtime.Serialization.DataContract(IsReference=true)]
[System.Serializable]
public sealed class EntityKey : IEquatable<System.Data.EntityKey>
[<System.Runtime.Serialization.DataContract(IsReference=true)>]
[<System.Serializable>]
type EntityKey = class
    interface IEquatable<EntityKey>
Public NotInheritable Class EntityKey
Implements IEquatable(Of EntityKey)
Héritage
EntityKey
Attributs
Implémente

Exemples

Ces exemples vous montrent comment créer et utiliser un EntityKey.

using (AdventureWorksEntities context =
    new AdventureWorksEntities())
{
    Object entity = null;
    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.
    if (context.TryGetObjectByKey(key, out entity))
    {
        Console.WriteLine("The requested " + entity.GetType().FullName +
            " object was found");
    }
    else
    {
        Console.WriteLine("An object with this key " +
            "could not be found.");
    }
}
using (AdventureWorksEntities context =
    new AdventureWorksEntities())
{
    try
    {
        // Create the key that represents the order.
        EntityKey orderKey =
            new EntityKey("AdventureWorksEntities.SalesOrderHeaders",
                "SalesOrderID", orderId);

        // Create the stand-in SalesOrderHeader object
        // based on the specified SalesOrderID.
        SalesOrderHeader order = new SalesOrderHeader();
        order.EntityKey = orderKey;

        // Assign the ID to the SalesOrderID property to matche the key.
        order.SalesOrderID = (int)orderKey.EntityKeyValues[0].Value;

        // Attach the stand-in SalesOrderHeader object.
        context.SalesOrderHeaders.Attach(order);

        // Create a new SalesOrderDetail object.
        // You can use the static CreateObjectName method (the Entity Framework
        // adds this method to the generated entity types) instead of the new operator:
        // SalesOrderDetail.CreateSalesOrderDetail(1, 0, 2, 750, 1, (decimal)2171.2942, 0, 0,
        //                                         Guid.NewGuid(), DateTime.Today));
        SalesOrderDetail detail = new SalesOrderDetail
        {
            SalesOrderID = orderId,
            SalesOrderDetailID = 0,
            OrderQty = 2,
            ProductID = 750,
            SpecialOfferID = 1,
            UnitPrice = (decimal)2171.2942,
            UnitPriceDiscount = 0,
            LineTotal = 0,
            rowguid = Guid.NewGuid(),
            ModifiedDate = DateTime.Now
        };

        order.SalesOrderDetails.Add(detail);

        context.SaveChanges();
    }
    catch (InvalidOperationException)
    {
        Console.WriteLine("Ensure that the key value matches the value of the object's ID property.");
    }
    catch (UpdateException)
    {
        Console.WriteLine("An error has occurred. Ensure that an object with the '{0}' key value exists.",
        orderId);
    }
}

Remarques

Les objets EntityKey sont immuables, ce qui signifie qu'ils ne peuvent plus être modifiés une fois construits.

Pour plus d’informations, consultez Utilisation des clés d’entité.

Constructeurs

EntityKey()

Initialise une nouvelle instance de la classe EntityKey.

EntityKey(String, IEnumerable<EntityKeyMember>)

Initialise une nouvelle instance de la classe EntityKey avec un nom de jeu d’entités et une collection IEnumerable<T> de EntityKeyMember.

EntityKey(String, IEnumerable<KeyValuePair<String,Object>>)

Initialise une nouvelle instance de la classe EntityKey avec un nom de jeu d’entités et une collection KeyValuePair générique.

EntityKey(String, String, Object)

Initialise une nouvelle instance de la classe EntityKey avec un nom de jeu d'entités et une paire de clés d'entités spécifique.

Champs

EntityNotValidKey

Objet EntityKey simple qui identifie une entité résultant d'une opération TREAT non réussie.

NoEntitySetKey

Singleton EntityKey par lequel une entité en lecture seule est identifiée.

Propriétés

EntityContainerName

Obtient ou définit le nom du conteneur d'entités.

EntityKeyValues

Obtient ou définit les valeurs de clés associées à cet objet EntityKey.

EntitySetName

Obtient ou définit le nom du jeu d'entités.

IsTemporary

Obtient une valeur qui indique si l'objet EntityKey est temporaire.

Méthodes

Equals(EntityKey)

Retourne une valeur qui indique si cette instance est égale à un objet EntityKey spécifié.

Equals(Object)

Retourne une valeur qui indique si cette instance est égale à un objet spécifié.

GetEntitySet(MetadataWorkspace)

Obtient le jeu d'entités pour cette clé d'entité à partir de l'espace de travail des métadonnées fourni.

GetHashCode()

Sert de fonction de hachage à l'objet EntityKey en cours. GetHashCode() convient à une utilisation dans des algorithmes de hachage et des structures de données comme une table de hachage.

GetType()

Obtient le Type de l'instance actuelle.

(Hérité de Object)
MemberwiseClone()

Crée une copie superficielle du Object actuel.

(Hérité de Object)
OnDeserialized(StreamingContext)

Méthode d'assistance utilisée pour désérialiser un objet EntityKey.

OnDeserializing(StreamingContext)

Méthode d'assistance utilisée pour désérialiser un objet EntityKey.

ToString()

Retourne une chaîne qui représente l'objet actuel.

(Hérité de Object)

Opérateurs

Equality(EntityKey, EntityKey)

Compare deux objets EntityKey.

Inequality(EntityKey, EntityKey)

Compare deux objets EntityKey.

S’applique à