c# - How to get ObjectSet<T>'s entity key name? -


i've created generic objectset<t> in generic repository.

what name of entitykey of objectset<t> can use in datacontext.getobjectbykey.

i've searched around , dug deep, can't seem find value anywhere in objectset class.

i looked while ago nice way , failed find one. end building getentitybykey extension method somewhere , within that, contatenating strings build entity keys trygetobjectbykey calls. general idea building entity key goes this:

internal class program {     private static void main(string[] args)     {         var dc = new adventureworkslt2008entities();         object c;         dc.trygetobjectbykey(getentitykey(dc.customers, 23), out c);         var customer = c customer;         console.writeline(customer.emailaddress);     }      private static entitykey getentitykey<t>(objectset<t> objectset, object keyvalue) t : class     {         var entitysetname = objectset.context.defaultcontainername + "." + objectset.entityset.name;         var keypropertyname = objectset.entityset.elementtype.keymembers[0].tostring();         var entitykey = new entitykey(entitysetname, new[] {new entitykeymember(keypropertyname, keyvalue)});         return entitykey;     } } 

you may able similar. example assumes single field per entitykey simplicity - multiple value keys need more sophisticated objectset<t>.elementtype.keymembers , pass keys entitykey constructor.


Comments

Popular posts from this blog

c++ - How do I get a multi line tooltip in MFC -

asp.net - In javascript how to find the height and width -

c# - DataTable to EnumerableRowCollection -