I’ve created a generic ObjectSet<T> in my generic repository.
What I would like to get is the name of the EntityKey of ObjectSet<T> so that I can use it in the DataContext.GetObjectByKey.
I’ve searched around and dug deep, but I can’t seem to find this value anywhere in the ObjectSet class.
I looked a while ago for a nice way to do this and failed to find one. I generally end up building a GetEntityByKey extension method somewhere and within that, contatenating strings to build Entity Keys for TryGetObjectByKey calls. The general idea for building the entity key goes something like this:
You may be able to do something similar. This example assumes a single field per EntityKey for simplicity – for multiple value keys you would need to do something slightly more sophisticated with
ObjectSet<T>.ElementType.KeyMembersand pass all your keys into the EntityKey constructor.