Mit FNH, ich versuche Kategorien abzurufen, mit dem folgenden:LINQ Fluent NHibernate .Contains() funktioniert nicht in QueryOver <> funktioniert aber in Query <>
_session.QueryOver<Data.Model.Category>()
.Where(c => tourCreateRequest.Categories.Contains(c.CategoryId))
.List()
.Select(_categoryMapper.CreateCategory)
.ToList();
Aber ich erhalte eine Fehlermeldung an die .Contains() Methode:
Nicht erkannte Methodenaufruf: System.Collections.Generic.ICollection`1 [[System.Int64 mscorlib Version = 4.0.0.0, Culture = neutral, PublicKeyToken = b77a5c561934e089]]: B oolean Enthält (Int64)
Warum bekomme ich diesen Fehler, was ist falsch?
Ich ging durch einige Beiträge, und änderte dann meine Abfrage in (unten), und dies funktioniert mit der Abfrage <>.
_session.Query<Data.Model.Category>()
.Where(c => tourCreateRequest.Categories.Contains(c.CategoryId))
.ToList()
.Select(_categoryMapper.CreateCategory)
.ToList();
Ich dachte QueryOver <> ist die neueste und größte und sollte> anstelle von Abfrage < verwendet werden.
Was ist das Problem mit der Art, wie ich QueryOver <> wie oben gezeigt verwende?
Ich denke, Sie müssen dies zuerst lesen http://stackoverflow.com/questions/5328565/nhibernate3-query-vs-queryover – frictionlesspulley
Danke für den Link. Wie kann ich jedoch mit .Contains() dasselbe tun, wenn ich QueryOver <> verwende? – jaxxbo
Ich mag diese Lösung besser: http://stackoverflow.com/questions/4739129/linq-to-nhibernate-where-collection-contains-object-with-id –