Partager 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 EntityKey objets sont immuables ; autrement dit, une fois qu’ils sont construits, ils ne peuvent pas être modifiés.

Constructeurs

Nom Description
EntityKey()

Initialise une nouvelle instance de la classe EntityKey.

EntityKey(String, IEnumerable<EntityKeyMember>)

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

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

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

EntityKey(String, String, Object)

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

Champs

Nom Description
EntityNotValidKey

Identification simple EntityKey d’une entité résultant d’une opération TREAT ayant échoué.

NoEntitySetKey

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

Propriétés

Nom Description
EntityContainerName

Obtient ou définit le nom du conteneur d’entité.

EntityKeyValues

Obtient ou définit les valeurs de clé associées à ce 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

Nom Description
Equals(EntityKey)

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

Equals(Object)

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

GetEntitySet(MetadataWorkspace)

Obtient l’ensemble d’entités pour cette clé d’entité à partir de l’espace de travail de métadonnées donné.

GetHashCode()

Sert de fonction de hachage pour l’objet actuel EntityKey . GetHashCode() convient aux algorithmes de hachage et aux structures de données, comme une table de hachage.

GetType()

Obtient la Type de l’instance actuelle.

(Hérité de Object)
MemberwiseClone()

Crée une copie superficielle du Objectactuel.

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

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

OnDeserializing(StreamingContext)

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

ToString()

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

(Hérité de Object)

Opérateurs

Nom Description
Equality(EntityKey, EntityKey)

Compare deux objets EntityKey.

Inequality(EntityKey, EntityKey)

Compare deux objets EntityKey.

S’applique à