Absolutely! And I prefer it that way :) /G
2011/1/18 José F. Romaniello <[email protected]> > Yours could be achieved with an extension method, because it is much more > specific. > The other could be any any query. > > 2011/1/18 Gunnar Liljas <[email protected]> > >> or >> >> ISession.Delete<T>(Expression<Func<T,bool>> query) >> >> 2011/1/18 Fabio Maulo <[email protected]> >> >> I think he need a new overload of ISession.Delete (the LINQ version of >>> ISession.Delete(string)). >>> Perahaps: >>> ISession.Delete(IQueriable) >>> >>> >>> On Tue, Jan 18, 2011 at 6:10 AM, Ayende Rahien <[email protected]>wrote: >>> >>>> We need to see the actual code that he uses. >>>> In general, an HqlQuery isn't translated to HqlString, it is then >>>> being executed. >>>> >>>> On Jan 18, 11:02 am, Mark Kharitonov <[email protected]> >>>> wrote: >>>> > Dear ladies and sirs. >>>> > >>>> > This post is related to this one on SO - >>>> http://stackoverflow.com/questions/1327306/does-anyone-know-how-to-tr. >>>> .. >>>> > >>>> > In short, how can one use linq to delete entities? >>>> > >>>> > There a responder who claims to be 95% along the way to the solution >>>> > using NH3, but he is missing the final step. >>>> > >>>> > BEGIN QUOTE >>>> > >>>> ___________________________________________________________________________ >>>> _________ >>>> > I had the exact same need: I needed to delete using a LINQ expression, >>>> > but NHibernate only supports delete using HQL or SQL. I don't like >>>> > this approach, since the rest of the code is completely strongly typed >>>> > with LINQ expression, and I then had to relate to table and property >>>> > names and manipulating strings. >>>> > >>>> > I am working with NHibernate 3.0 and I came 95% of the way, but I had >>>> > to use reflection to call some private/internal methods on the way. >>>> > The below gives me an HqlQuery object for the LINQ expression: >>>> > >>>> > NhQueryable<Product> queryable = (from p in session.Query<Product>() >>>> > where p.ProductId == 1 >>>> > select p) as NhQueryable<Product>; >>>> > if (queryable != null) >>>> > { >>>> > Expression expression = queryable.Expression; >>>> > NhQueryProvider provider = queryable.Provider as NhQueryProvider; >>>> > MethodInfo prepareQueryMethod = >>>> > typeof(NhQueryProvider).GetMethod("PrepareQuery", >>>> > BindingFlags.Instance | BindingFlags.NonPublic); >>>> > object[] arguments = new object[] {expression, null, null}; >>>> > NhLinqExpression nhLinqExpression = >>>> > prepareQueryMethod.Invoke(provider, arguments) as NhLinqExpression; >>>> > ExpressionToHqlTranslationResults translationResults = >>>> > nhLinqExpression.ExpressionToHqlTranslationResults; >>>> > HqlQuery hql = translationResults.Statement as HqlQuery; >>>> > >>>> > } >>>> > >>>> > I am stuck on that I am not able to convert the HqlQuery object to a >>>> > HQL string. Anyone have any input on this? Or did you solve your >>>> > problem in a different way? >>>> > >>>> > Anyway I think it could be a great addition to have an overload of >>>> > ISession.Delete, that took an IQueryable or IQuery as parameter. I am >>>> > a newbie to NHibernate, but it seems to me it should be a fairly >>>> > simple task for someone knowing NHibernate to find some already >>>> > existing methods and wire them up to do the job. >>>> > >>>> ___________________________________________________________________________ >>>> _________ >>>> > END QUOTE >>>> > >>>> > I was wondering if any one on this mailing list can complete the >>>> > missing 5%. >>>> > Thanks. >>>> >>>> -- >>>> You received this message because you are subscribed to the Google >>>> Groups "nhusers" group. >>>> To post to this group, send email to [email protected]. >>>> To unsubscribe from this group, send email to >>>> [email protected]<nhusers%[email protected]> >>>> . >>>> For more options, visit this group at >>>> http://groups.google.com/group/nhusers?hl=en. >>>> >>>> >>> >>> >>> -- >>> Fabio Maulo >>> >>> -- >>> You received this message because you are subscribed to the Google Groups >>> "nhusers" group. >>> To post to this group, send email to [email protected]. >>> To unsubscribe from this group, send email to >>> [email protected]<nhusers%[email protected]> >>> . >>> For more options, visit this group at >>> http://groups.google.com/group/nhusers?hl=en. >>> >> >> -- >> You received this message because you are subscribed to the Google Groups >> "nhusers" group. >> To post to this group, send email to [email protected]. >> To unsubscribe from this group, send email to >> [email protected]<nhusers%[email protected]> >> . >> For more options, visit this group at >> http://groups.google.com/group/nhusers?hl=en. >> > > -- > You received this message because you are subscribed to the Google Groups > "nhusers" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]<nhusers%[email protected]> > . > For more options, visit this group at > http://groups.google.com/group/nhusers?hl=en. > -- You received this message because you are subscribed to the Google Groups "nhusers" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/nhusers?hl=en.
