如何在EF4中获取实体的第一个EntityKey名称 [英] How to get first EntityKey Name for an Entity in EF4
问题描述
如何获得实体框架4的实体的第一个EntityKey名称,因为我正在构建一个存储库系统,并且我想通过Id获取一个项目(这是EF的主要关键点,EF是实体的第一个实体密钥)
How can I get the 1st EntityKey name for an Entity for Entity Framework 4 because I'm building a repository system and I wanted to get an item by Id (which is the primary key oin EF is the 1st entitykey for the entity)
我正在使用此代码
public virtual TEntity GetById(string keyName, Guid entityId)
{
var entityKey = new EntityKey(this.QualifiedEntitySetName, keyName, entityId);
object entity;
return this.Context.TryGetObjectByKey(entityKey, out entity) ? entity as TEntity : null;
}
我想让实体键名称动态。
任何人都可以帮我解决这个问题?
I want to get the entity key name dynamic. Can anyone help me with this issue?
推荐答案
var keyName = this.Context
.MetadataWorkspace
.GetEntityContainer(this.Context.DefaultContainerName,DataSpace.CSpace)
.BaseEntitySets
.First(meta => meta.ElementType.Name == this.entityName)
.ElementType
.KeyMembers
.Select(k => k.Name)
.FirstOrDefault();
var keyName = this.Context .MetadataWorkspace .GetEntityContainer(this.Context.DefaultContainerName, DataSpace.CSpace) .BaseEntitySets .First(meta => meta.ElementType.Name == this.entityName) .ElementType .KeyMembers .Select(k => k.Name) .FirstOrDefault();
我知道它看起来太多了,你想拥有实体名称。
I know it looks too much but u I wanted to get it by having the Entity Name.
这篇关于如何在EF4中获取实体的第一个EntityKey名称的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!