如何在 EF4 中获取实体的第一个 EntityKey 名称
我如何获取 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;
}
我想动态获取实体键名称。 谁能帮我解决这个问题吗?
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)
I'm using this code
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?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
var keyName = this.Context
.MetadataWorkspace
.GetEntityContainer(this.Context.DefaultContainerName, DataSpace.CSpace)
.BaseEntitySets
.First(meta => meta.ElementType.Name == this.entityName)
.ElementType
.主要成员
.Select(k => k.名称)
.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.
您可以使用以下代码从 MetaDataWorkspace 获取 Entity Key 成员集合:
You can get the Entity Key members collection from MetaDataWorkspace using the following code:
试试这个:
objectsource 是 objectcontext。
Try this:
objectsource is objectcontext.