EntityKey 类 
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
提供对作为实体类型实例的对象的持久引用。
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)- 继承
- 
				EntityKey
- 属性
- 实现
示例
这些示例演示如何创建和使用 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);
    }
}
注解
EntityKey 对象是不可变的,也就是说,这些对象在构造之后不可以修改。
有关详细信息,请参阅 使用实体键。
构造函数
| EntityKey() | 初始化 EntityKey 类的新实例。 | 
| EntityKey(String, IEnumerable<EntityKeyMember>) | 使用实体集名称和 EntityKey 对象的 IEnumerable<T> 集合初始化 EntityKeyMember 类的新实例。 | 
| EntityKey(String, IEnumerable<KeyValuePair<String,Object>>) | 使用实体集名称和泛型 EntityKey 集合初始化 KeyValuePair 类的新实例。 | 
| EntityKey(String, String, Object) | 使用实体集名称和特定实体键对初始化 EntityKey 类的新实例。 | 
字段
| EntityNotValidKey | |
| NoEntitySetKey | 一个单独的 EntityKey,它标识一个只读实体。 | 
属性
| EntityContainerName | 获取或设置实体容器的名称。 | 
| EntityKeyValues | 获取或设置与此 EntityKey 关联的键值。 | 
| EntitySetName | 获取或设置实体集的名称。 | 
| IsTemporary | 获取一个值,该值指示 EntityKey 是否是临时的。 | 
方法
| Equals(EntityKey) | 返回一个值,该值指示此实例是否与指定的 EntityKey 相等。 | 
| Equals(Object) | 返回一个值,该值指示此实例是否与指定的对象相等。 | 
| GetEntitySet(MetadataWorkspace) | 从给定的元数据工作区获取此实体键的实体集。 | 
| GetHashCode() | 用作当前 EntityKey 对象的哈希函数。 GetHashCode() 适用于哈希算法和诸如哈希表之类的数据结构。 | 
| GetType() | 获取当前实例的 Type。(继承自 Object) | 
| MemberwiseClone() | 创建当前 Object 的浅表副本。(继承自 Object) | 
| OnDeserialized(StreamingContext) | 用于反序列化 EntityKey 的帮助器方法。 | 
| OnDeserializing(StreamingContext) | 用于反序列化 EntityKey 的帮助器方法。 | 
| ToString() | 返回表示当前对象的字符串。(继承自 Object) | 
运算符
| Equality(EntityKey, EntityKey) | 比较两个 EntityKey 对象。 | 
| Inequality(EntityKey, EntityKey) | 比较两个 EntityKey 对象。 |