Entity framework 4 如何在entityframework中从表中获取列id值

Entity framework 4 如何在entityframework中从表中获取列id值,entity-framework-4,Entity Framework 4,是否有一种使用EntityFramework4获取列id值的方法 与此SQL查询相同: Select Orderid from OrderItems where Orderid = 1; 您可以通过从ObjectStateManager查询EntityKeys来获取实体的键值。在EF4中(假设您有一个ObjectContext),它是这样的: foreach(context.ObjectStateManager中的var-ek .GetObjectStateEntries(System.Da

是否有一种使用EntityFramework4获取列id值的方法

与此SQL查询相同:

Select Orderid from OrderItems where Orderid  = 1;

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

foreach(context.ObjectStateManager中的var-ek
.GetObjectStateEntries(System.Data.EntityState.Unchanged)
.Select(objectStateEntry=>objectStateEntry.EntityKey))
{
System.Data.EntityKeyMember[]keys=ek.EntityKeyValues;
//用钥匙做点什么
}
在EF6中(使用
DbContext
)是这样做的:

var oc=((IObjectContextAdapter)上下文);
foreach(oc.ObjectStateManager中的变量ek
.GetObjectStateEntries(System.Data.Entity.EntityState.Unchanged)
.Select(objectStateEntry=>objectStateEntry.EntityKey))
{
System.Data.Entity.Core.EntityKeyMember[]keys=ek.EntityKeyValues;
//用钥匙做点什么
}

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

为什么不使用链接。。?