1

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?

Nate
  • 30,286
  • 23
  • 113
  • 184
gunnerz
  • 1,898
  • 5
  • 24
  • 39

1 Answers1

1

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);
Ladislav Mrnka
  • 360,892
  • 59
  • 660
  • 670