Korzystanie FNH, próbuję odzyskać kategorie, stosując następujący:LINQ Fluent NHibernate .Contains() nie działa w QueryOver <> ale działa w Query <>
_session.QueryOver<Data.Model.Category>()
.Where(c => tourCreateRequest.Categories.Contains(c.CategoryId))
.List()
.Select(_categoryMapper.CreateCategory)
.ToList();
Ale pojawia się błąd przy z .Contains() metoda:
nierozpoznany wywołanie metody: System.Collections.Generic.ICollection`1 [[System.Int64, mscorlib, Version = 4.0.0.0 Kultura = neutralne TokenKluczaPublicznego = b77a5c561934e089]]: B oolean Zawiera (Int64)
Dlaczego otrzymuję ten błąd, co jest nie tak?
Przeszedłem kilka postów, a następnie zmieniono moje zapytanie na (poniżej), a to działa z zapytaniem <>.
_session.Query<Data.Model.Category>()
.Where(c => tourCreateRequest.Categories.Contains(c.CategoryId))
.ToList()
.Select(_categoryMapper.CreateCategory)
.ToList();
Myślałem QueryOver <> to najnowszy i największy i powinien być stosowany zamiast Query <>.
Na czym polega problem ze sposobem, w jaki korzystam z QueryOver <> jak pokazano powyżej?
Myślę, że musisz przeczytać ten pierwszy http://stackoverflow.com/questions/5328565/nhibernate3-query-vs-queryover – frictionlesspulley
Dzięki za link. Jak jednak wykonać to samo przy użyciu funkcji .Contains() przy użyciu QueryOver <>? – jaxxbo
Lepsze to rozwiązanie: http://stackoverflow.com/questions/4739129/linq-to-nhibernate-where-collection-contains-object-with-id –