Ok Steve but in this case (NH-lambda-extension) the target is pretty clear : Completely avoid strings 2009/1/8 Stephen Bohlen <[email protected]>
> First, I'm all for this. Over the recent past, others (including myself) > have tinkered with variations on just such an approach... > > > http://www.kowitz.net/archive/2008/08/17/what-would-nhibernate-icriteria-look-like-in-.net-3.5.aspx > > > http://bugsquash.blogspot.com/2008/03/strongly-typed-nhibernate-criteria-with.html > > > http://unhandled-exceptions.com/blog/index.php/2008/11/22/the-continuing-quest-for-death-of-string-literals-in-my-code/ > > ...with some of us going farther than others (e.g., my musing never lead to > anything fully-featured, but instead just languished as a quick spike on my > HD). > > It sort of seems to me like there are two (largely orthogonal) concerns > here: > > 1) remove the dependence on string-literals in ICriterion queries > > 2) LINQ provider for NH > > #1 is IMHO an entirely worthwhile goal in its own right -- clearly the less > magic, refactor-proof strings there are the better off we all are. I would > guess that there are some issues with how this would find its way into the > NH trunk since presently NH 2.1 has a publicly-stated desire to continue to > target Fx 2.0 and we need Fx 3.x for lambda support AFAIK (an implementation > detail that could be solved by introducing some kind of NH3xExtensions.dll > assembly or something similar to that, so not a deal-breaker by any means of > course but rather just an acknowledgement of some add'l complexity). > > But as for #2, to me this gets to the heart of WHY people would want a LINQ > provider -- if its to get intellisense during the construction of queries, > then I think this would definitely help alleviate some of that pressure as > you suggest. But if its so that people already familiar with LINQ can > move laterally from their present DAL-of-choice to NH, then I don't entirely > see how this would help reduce that pressure (since knowing LINQ wouldn't > ease the coming-to-NH learning curve). > > Maybe its worth re-evaluating WHERE the frequent requests for LINQ support > are coming from to try to futher investigate their 'motives/goals' which > might help us better understand the relative value of this 'alternate' > approach...? Is is people who ALREADY know NH and are looking for a more > refactor-friendly way to construct queries or is it from non-NH-users who > are looking to flatten their learning curve when approaching NH? Or is it > from present NH-users who are looking to spread it to the rest of their > team/company/whatever and are considering that LINQ2NH would make that > process easier --? If we knew better their goals, we might be better able > to evaluate the effectiveness of pursuing this 'intermediate' step. > > FWIW, I would consider that this is (or something very much like it) would > be a valuable introduction to NH regardless of whether it materially reduces > the calls for a complete LINQ2NH provider -- clearly its something that > myself and others (including the initially-referenced poster) have been > thinking about for some time. > > Other thoughts? > > -Steve B. > > > On Thu, Jan 8, 2009 at 4:52 AM, Ayende Rahien <[email protected]> wrote: > >> This is really interesting: >> >> >> http://nhforge.org/blogs/nhibernate/archive/2009/01/07/typesafe-icriteria-using-lambda-expressions.aspx >> >> Expanding the syntax a bit, we can use: >> >> session.CreateCriteria<Person>() >> .SetFetchMode(p => p.PersonDetail, FetchMode.Eager) >> .SetLockMode(LockMode.Upgrade) >> .Add(p=>p.Name.Like("foo")) >> .List(); >> >> That would remove a lot of the pressure to build a full fledged linq >> provider. >> And it seems like it is much easier to do. >> >> Thoughts? >> > > -- Fabio Maulo
