如何在EF4中获取实体的第一个EntityKey名称 [英] How to get first EntityKey Name for an Entity in EF4

查看:672
本文介绍了如何在EF4中获取实体的第一个EntityKey名称的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何获得实体框架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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆