casting - How do I join on an IQueryable? The type is unknown -


i used dynamic linq generate search results. last call .select("userid"), returns iqueryable (non-generic interface).

now, represents list of users meet search criteria.

next, i'm trying join results original users table can join in rest of info associated each user.

when try this:

iqueryable<users> users = /*assume valid instance acquired*/ /*matchingusers valid iqueryable instance returned dynamic linq query*/ var results = users .join( matchingusers, u => u.id, m => m.userid, (u, m) => u ) 

that fails trying access m.userid, because type of iqueryable unknown. type accessible type instance on iqueryable via elementtype property, don't know how can use in situation.

i've tried following:

private class useridlist { public guid userid { get; set; } } filteredusersdynamiclinqquery .select("new mynamespace.useridlist(userid)") 

but new operator can't seem handle specific type names. saw another post suggesting could, maybe syntax wrong, may custom feature.

i've tried :

var results = users .join( matchingusers.cast<dynamic>, u => u.id, m => m.userid, (u, m) => u ) 

it's highlighted compiler error: "an expression tree may not contain dynamic operation."

i've tried:

var results = users .join( matchingusers.cast<useridlist>(), u => u.id, (useridlist m) => m.userid, (u, m) => u ) 

but gives runtime error: "additional information: unable cast type 'dynamicclass3' type 'mynamespace+useridlist'. linq entities supports casting edm primitive or enumeration types." see also: iqueryable list


Comments