I general, I like the idea, but I don't think that the Linq interface
should be polluted with things that is already is part of the IQueryable
contract. It's just confusing.

/G



2014-11-20 21:21 GMT+01:00 Alexander Zaytsev <haz...@gmail.com>:

> Hi Ricardo,
>
> I would prefer to focus on 4.1.0 issues and bugs rather than new
> functionality.
>
> Best Regards,
> Alexander
>
> On Fri, Nov 21, 2014 at 6:44 AM, Ricardo Peres <rjpe...@gmail.com> wrote:
>
>> Hi,
>>
>> I submitted a pull request for https://nhibernate.jira.com/browse/NH-2140.
>> The idea is to have all query APIs (LINQ, HQL, SQL, Criteria and QueryOver)
>> support a base interface, which I called IQueryOptions.
>> This interface has common methods for paging, limiting the number of
>> records, setting read only, setting lock mode, setting a result
>> transformer, queuing to future queries, and performing the actual query. It
>> is defined as:
>>
>> public interface IQueryOptions
>> {
>>      IList List();
>>
>>      void List(IList list);
>>
>>      IList<T> List<T>();
>>
>>      object UniqueResult();
>>
>>      T UniqueResult<T>();
>>
>>      IQueryOptions SetFirstResult(int firstResult);
>>
>>      IQueryOptions SetFetchSize(int fetchSize);
>>
>>      IQueryOptions SetReadOnly(bool readOnly);
>>
>>      IQueryOptions SetCacheable(bool cacheable);
>>
>>      IQueryOptions SetCacheRegion(string cacheRegion);
>>
>>      IQueryOptions SetTimeout(int timeout);
>>
>>      IQueryOptions SetMaxResults(int maxResults);
>>
>>      IQueryOptions SetLockMode(string alias, LockMode lockMode);
>>
>>      IQueryOptions SetResultTransformer(IResultTransformer 
>> resultTransformer);
>>
>>      IFutureValue<T> FutureValue<T>();
>>
>>      IEnumerable<T> Future<T>();
>> }
>>
>>
>> Because it was required for LINQ, I also included
>> https://nhibernate.jira.com/browse/NH-3299,
>> https://nhibernate.jira.com/browse/NH-3470 and
>> https://nhibernate.jira.com/browse/NH-2285.
>> It allows doing these without caring what API is actually being used:
>>
>> IQueryOptions query = //...
>>
>> query = query.SetReadOnly(true);
>> query = query.SetFirstResult(1);
>> query = query.SetMaxResults(1);
>> query = query.SetFetchSize(100);
>> query = query.SetLockMode(alias, LockMode.Upgrade);
>> query = query.SetResultTransformer(transformer);
>>  var result = query.List<Simple>();
>>
>>
>> What do you think? Let me hear your comments.
>>
>>
>> RP
>>
>>  --
>>
>> ---
>> 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 nhibernate-development+unsubscr...@googlegroups.com.
>> 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 nhibernate-development+unsubscr...@googlegroups.com.
> 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 nhibernate-development+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to