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
Post a Comment