Felipe,

Sorry for the double reply.  The issue I had with the data types, just so 
you know, occurs when the collection that Contains is being called on is 
some more complex IEnumerable.

IEnumerable<Int32> someIntegers = Enumerable.Range(1, 100).Where(i => i % 2 
> == 0 || i % 5 == 0); // Just some arbitrary numbers 
>
session.Query<MyEntityType>().Where(et => someIntegers.Contains(et.Id));
>

I get an error from NHibernate when running this code: "Failed to convert 
parameter value from a WhereEnumerableIterator`1 to a Int32"

Cheers,

    Don

On Tuesday, July 17, 2012 1:53:18 PM UTC-4, mysterd429 wrote:
>
> Felipe,
>
> I just tested a little bit, and I found that the int[] worked just fine.  
> The SQL that was generated was something like WHERE myId in (@p0, @p1, 
> @p2), with @p0, @p1, and @p2 being set to whatever was in the array.  The 
> number of parameters changes with the size of the array.
>
> Cheers,
>
>     Don
>
> On Tuesday, July 17, 2012 9:52:37 AM UTC-4, Felipe Oriani wrote:
>>
>> Hi misterd429,
>>
>> I could convert int[] ni List<int> without problem. THis way using 
>> .Contains(id) will generate a IN operator ?
>>
>> Thank you!
>>
>>
>> On Tue, Jul 17, 2012 at 10:34 AM, mysterd429 <> wrote:
>>
>>> Felipe,
>>>
>>> I'd do something like .Where(p => idCategories.Contains(p.IdCategory)), 
>>> but I find it is sometimes finicky about the type.  I use List<int> without 
>>> a problem.
>>>
>>>     Don
>>>
>>>
>>> On Monday, July 16, 2012 10:50:09 PM UTC-4, Felipe Oriani wrote:
>>>
>>>> Hello Guys, I have a linq query with NHibernate using Session.Query<T> 
>>>> method and I in this query I Fetch some complex properties and collection 
>>>> properties. I would like to know, how cna I add an condition with IN 
>>>> operator from an int[] ? Look my code:
>>>>
>>>> public IEnumerable<Product> GetProducts(int[] idCategories) 
>>>> {
>>>>     // how to add IN condition here or a subquery 
>>>>     var query = Session.Query<Product>().**Where(?????).Fetch(x=>**
>>>> xCategory).FetchMany(x=>x.**Status).ThenFetch(x=>x.Item);
>>>>
>>>>     return query.ToList();
>>>> }
>>>>
>>>> I have another method doing a query to get this int[] and I would like 
>>>> to apply it here, or if is there any way to add this subquery on the IN 
>>>> operator, I really appreciate! 
>>>>
>>>> Thank you!
>>>>
>>>> -- 
>>>> ______________________________**________
>>>> Felipe B. Oriani
>>>>
>>>>
>>>> "...Trabalhe quanto puder, tornando-se útil quanto possível..." , por 
>>>> André Luiz
>>>>
>>>>
>>>>  -- 
>>> You received this message because you are subscribed to the Google 
>>> Groups "nhusers" group.
>>> To view this discussion on the web visit 
>>> https://groups.google.com/d/msg/nhusers/-/Hqr2JRy-dmYJ.
>>> 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.
>>>
>>
>>
>>
>> -- 
>> ______________________________________
>> Felipe B. Oriani
>> <http://felipeoriani.com.br/>
>> Contato: (19) 9611-8646 / (19) 3421-7850
>>
>> "...Trabalhe quanto puder, tornando-se útil quanto possível..." , por 
>> André Luiz
>>
>> 

-- 
You received this message because you are subscribed to the Google Groups 
"nhusers" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/nhusers/-/3nhQ2HsR7XcJ.
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.

Reply via email to