Very nice. I would like to remove word "All" from the operations.Also why do we need "Set" in update statement?
On Fri, Dec 19, 2014 at 1:04 PM, Ricardo Peres <[email protected]> wrote: > > Very nice! I implemented strongly typed delete in NH-3488 > <https://nhibernate.jira.com/browse/NH-3488>, but the syntax was a bit > different: > > session.Delete<Product>(x => x.Price > 100); > > Do you have a pull request waiting to be issued? > > RP > > > On Thursday, December 18, 2014 11:21:06 PM UTC, Gunnar Liljas wrote: >> >> So, now I have completed and old abandoned NH project, to create a Linq >> implementation of the bulk functionality. It's complete in the sense that >> all the unit tests from the HQL implementation passes with the Linq >> implementation as well, plus a couple more. Before I clean things up, I'd >> like you input on the syntax. >> >> Currently it works like this: >> >> Delete >> >> session.Query<Animal>() >> .Where(x=>x.Age>3) >> .DeleteAll(); >> >> //all methods returns int (affected rows) >> >> Update >> >> session.Query<Animal>() >> .Where(x=>x.Age>3) >> .UpdateAll(x=>x >> .Set(y=>y.Name,"Peter") >> .Set(y=>y.Age,y=>y.Age+1) >> ) >> >> Insert (i.e INSERT SELECT) >> >> session.Query<Animal>() >> .Where(x=>x.Age>3) >> .InsertInto(x=>new Human{ >> Name=x.Name, >> Age=x.Name+10 >> }) >> >> >> The Delete method was first implemented as >> session.Delete<Animal>(x=>x.Age>3), >> but I added the IQueryable<T>.DeleteAll extension for consistency. >> >> I welcome any ideas on how this can be improved/changed. >> >> /G >> > -- > > --- > You received this message because you are subscribed to the Google Groups > "nhibernate-development" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > For more options, visit https://groups.google.com/d/optout. > -- --- You received this message because you are subscribed to the Google Groups "nhibernate-development" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
