using linq, easy execute function project ienumerable.
var orders = new list<order>(); orders.where(x => x.id > 50).select(x => new somethingelse(x.name)); using entityframework , iqueryable, not possible. instead unsupported exception @ runtime because cannot have function inside select.
does not work:
var db = new order(); db.myentities.where(x => x.id > 50).select(x => new somethingelse(x.name)).take(10);
does there exist, or possible create way above work?
i understand doesn't work because cannot convert function sql can understand, however, if there extension method called 'execute' execute in memory after executing linq before , after it, work?
the database pull > 50 , top 10, after
var db = new order(); db.myentities.where(x => x.id > 50).execute(x => new somethingelse(x.name)).take(10);
to clarify: requirement keep iqueryable after sleect()
no, because you'd need ship data database final part.
typically have select information need within query (using anonymous type if there multiple properties need), rest locally:
var query = db.myentities .where(x => x.id > 50) .select(x => x.name) // need - keep query cheap .take(10) .asenumerable() .select(x => new somethingelse(x)); note may run queryable.asqueryable, does produce iqueryable<t> ienumerable<t> - doesn't want. if source isn't queryable, "fake" not connect database, you're after.
Comments
Post a Comment