如何在EF4中获取实体的第一个EntityKey名称

Ahm*_*gdy 4 entity entity-framework repository entitykey entity-framework-4

如何获取Entity Framework 4实体的第一个EntityKey名称,因为我正在构建一个存储库系统,我想通过Id获取一个项目(这是EF的主键是实体的第一个实体键)

我正在使用此代码

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;
        }
Run Code Online (Sandbox Code Playgroud)

我想让实体键名称动态化.任何人都可以帮我解决这个问题吗?

Ahm*_*gdy 5

VAR的keyName = this.Context .MetadataWorkspace .GetEntityContainer(this.Context.DefaultContainerName,DataSpace.CSpace).BaseEntitySets.首先(元=> meta.ElementType.Name == this.entityName).ElementType .KeyMembers.选择(K => k.Name).FirstOrDefault();

我知道它看起来太多但你想通过拥有实体名称来获得它.