Reputation: 1926
I have created an entity model. I want to get the primary key name (i.e. property name) when I pass the entity name at runtime. Is it possible?
Upvotes: 1
Views: 1069
Reputation: 364319
It is possible with entity type:
var objectSet = objectContext.CreateObjectSet<YourEntityType>();
var keyNames = objectSet.EntitySet.ElementType.KeyMembers.Select(k => k.Name);
or with entity type name:
var workspace = objectContext.MetadataWorkspace;
var entityType = workspace.GetItems<EntityType>(DataSpace.CSpace)
.FirstOrDefault(e => e.Name == yourEntityTypeName);
var keyNames = entityType.KeyMembers.Select(k => k.Name);
Upvotes: 1