Utilizzando FNH, sto cercando di recuperare categorie, utilizzando la seguente:LINQ Fluent NHibernate .Contains() non funziona in QueryOver <>, ma lavora in Query <>
_session.QueryOver<Data.Model.Category>()
.Where(c => tourCreateRequest.Categories.Contains(c.CategoryId))
.List()
.Select(_categoryMapper.CreateCategory)
.ToList();
ma ottengo un errore alla le .Contains() metodo:
metodo riconosciuto chiamata: System.Collections.Generic.ICollection`1 [[System.Int64, mscorlib, versione = 4.0.0.0, Culture = neutral, PublicKeyToken = b77a5c561934e089]]: B oolean Contains (Int64)
Perché sto ricevendo quell'errore, cosa c'è che non va?
Sono passato attraverso alcuni post, quindi ho cambiato la mia query in (sotto), e questo funziona con Query <>.
_session.Query<Data.Model.Category>()
.Where(c => tourCreateRequest.Categories.Contains(c.CategoryId))
.ToList()
.Select(_categoryMapper.CreateCategory)
.ToList();
ho pensato QueryOver <> è l'ultima e più grande e dovrebbe essere usato al posto di Query <>.
Qual è il problema con il modo in cui sto usando QueryOver <> come mostrato sopra?
Penso che sia necessario leggere prima questo http://stackoverflow.com/questions/5328565/nhibernate3-query-vs-queryover – frictionlesspulley
Grazie per il collegamento. Tuttavia, come posso eseguire la stessa cosa usando .Contains() usando QueryOver <>? – jaxxbo
Mi piace questa soluzione meglio: http://stackoverflow.com/questions/4739129/linq-to-nhibernate-where-collection-taintain-object-with-id –