I also wonder how UniqueResult can be batched. Maybe using a lambda? On Mon, Oct 6, 2008 at 12:43 AM, Diego Jancic <[EMAIL PROTECTED]> wrote:
> Yes, you're right! That has no sense at all! > > > > *From:* [email protected] [mailto: > [EMAIL PROTECTED] *On Behalf Of *Tuna Toksöz > *Sent:* Sunday, October 05, 2008 18:36 > > *To:* [email protected] > *Subject:* [nhibernate-development] Re: MultiCriteria, MultiQuery needs > some modifications > > > > Nope, batch query will probably not have > > object UniqueResult(); > > T UniqueResult<T>(); > > because it is a multi-query. So it should be another class that doesn't > inherit from INhQuery > > > > List and UniqueResult, hmm maybe. I am thinking on Linq queries and yes > this may have List that refers to .ToList() and UniqueResult() to .First() > > > > > > On Mon, Oct 6, 2008 at 12:26 AM, Diego Jancic <[EMAIL PROTECTED]> wrote: > > Hi, > > I've an idea that sounds more intuitive to me. The problem is that I would > expect to be able to do something like: > > > > INHQuery query = GiveMeAQueryUsingTheMethodYouWant(); > > query.List() > > > > Because a query is useless if I can't see the results, I think that the > INHQuery should be at least something like this: > > > > interface INhQuery > > { > > object List(); > > IList<T> List<T>(); > > object UniqueResult(); > > T UniqueResult<T>(); > > > > // As we are in NHibernate and not in ADO.NET, and the Caching > feature is > > // in the core of the framework, I would add the caching methods too. > > > } > > > > Also, the batcher is not an special class alone, it could be just another > INhQuery that contains INhQueries. Something like this: > > > > class BatchQuery : INhQuery > > { > > void AddQuery(INhQuery query); > > * * > > * // Methods from INhQuery:* > > object List(); > > IList<T> List<T>(); > > object UniqueResult(); > > T UniqueResult<T>(); > > } > > > > Of course the BatchQuery could be an interface instead of a concrete class, > but I don't see why it might be needed. Of course you know so much better > how NH works, and probably have several reasons for that. It's just an idea. > > Thoughts? > > > > Diego > > > > *From:* [email protected] [mailto: > [EMAIL PROTECTED] *On Behalf Of *Tuna Toksöz > *Sent:* Sunday, October 05, 2008 12:40 > *To:* [email protected] > *Subject:* [nhibernate-development] Re: MultiCriteria, MultiQuery needs > some modifications > > > > No other thoughts? > > On Sat, Oct 4, 2008 at 11:10 PM, Tuna Toksöz <[EMAIL PROTECTED]> wrote: > > Doesn't have to have any method, a marker interface just works. But if we > are to define, then we can use > > > > interface INhQuery > > { > > void SetCachable(bool); > > void SetCacheRegion(string); > > void SetCacheMode(whatever); > > } > > > > Those are the biggest set of methods that are common among Hql,Criteria and > Linq(in the future) > > On Sat, Oct 4, 2008 at 11:00 PM, Fabio Maulo <[EMAIL PROTECTED]> wrote: > > Which should be the contract of INhQuery ? > > 2008/10/4 Tuna Toksöz <[EMAIL PROTECTED]> > > > > Hello everybody, > > When studying the issue NH-1508<http://jira.nhibernate.org/browse/NH-1508>, > I realized that MultiQuery is coupled to Hql(Sql is not possible). Fabio > told me to throw NotSupportedException temporarily, just to let the user > know about the situation. > The discussion between Fabio and me brought some ideas in my mind. > > Let me tell what I have in my mind. > > 1. Define an interface INHQuery (a better name would be IQuery but it is > used for Hql) which will be base for IQuery and ICriteria, and in the future > Linq Queries. Can be either a marker interface or a set of common methods > such as cacheable etc. This part is optional) > 2. Define a Batcher class(I need to study NH more to come up with full > declaration) and an interface IBatchQueryAppender<T> where T:INhQuery > The batcher will accept any INhQuery as long as its Appender is > defined. It will do the work to append the query to the batch. > > This way, different querying methods can be used in the same batch. > > This implementation will make MultiQuery and MultiCriteria obselete and > current implementations for those will redirect method calls to INhQuery in > order to prevent breaking changes. > > This is my initial thoughts about the issue. Comments are welcome. > > Cheers! > -- > Tuna Toksöz > > Typos included to enhance the readers attention > > > > > -- > Fabio Maulo > > > > > -- > Tuna Toksöz > > Typos included to enhance the readers attention! > > > > > -- > Tuna Toksöz > > Typos included to enhance the readers attention! > > > > > -- > Tuna Toksöz > > Typos included to enhance the readers attention! > -- Tuna Toksöz Typos included to enhance the readers attention!
