Hi.Tuna, your proposal of improv is interesting but, as you sure know, we
have many other things to do in core.
Please create a JIRA ticket (as "improv" or "new feature") and we can
continue the discussion there and users have the oppotunity to vote it.

IMO is better if we concentrate our effort to end some pending work instead
create a new pending work.

Bye.
Fabio.


2008/10/5 Tuna Toksöz <[EMAIL PROTECTED]>

> 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!
>



-- 
Fabio Maulo

Reply via email to