如何从实体框架中的表中获取列id值

时间:2014-04-02 05:56:10

标签: entity-framework-4

有没有办法使用Entity Framework 4获取列id值?

和SQL Query一样:

Select Orderid from OrderItems where Orderid  = 1;

1 个答案:

答案 0 :(得分:0)

您可以通过EntityKey查询ObjectStateManger来获取实体的关键值。在EF4中(假设你有ObjectContext),它是这样的:

foreach (var ek in context.ObjectStateManager
            .GetObjectStateEntries(System.Data.EntityState.Unchanged)
            .Select(objectStateEntry => objectStateEntry.EntityKey))
{
    System.Data.EntityKeyMember[] keys = ek.EntityKeyValues;
    // Do something with keys
}

在EF6(DbContext)中,它就像这样完成:

var oc = ((IObjectContextAdapter)context).ObjectContext;
foreach (var ek in oc.ObjectStateManager
            .GetObjectStateEntries(System.Data.Entity.EntityState.Unchanged)
            .Select(objectStateEntry => objectStateEntry.EntityKey))
{
    System.Data.Entity.Core.EntityKeyMember[] keys = ek.EntityKeyValues;
    // Do something with keys
}

这将获得此时已加载到上下文中的实体的键值。