J'ai un ancien code à supporter. NHibernate est utilisé pour interroger DB. Il y a des requêtes NHibernate LINQ comme IQueryOver.Where
et autres. Cela fonctionne bien mais je veux utiliser ces requêtes pour des séquences locales. Dans Microsoft LINQ, il existe la méthode Enumerable.AsQueryable
. Existe-t-il un analogue dans NHibernate LINQ?NHibernate AsQueryable LINQ analogique
Donc, j'ai ceci.
private IQueryOver<Package> GetPackages(GetPackageMessage message)
{
var query = SessionFactory.Current.QueryOver<Package>();
if (message.TzapUtc.Use)
{
query = query.Where(x => x.Tzap_utc >= message.TzapUtc.ValueBegin);
}
if (message.Iik.Use)
{
query = use ? query.Where(x => x.Iik == message.Iik.Value);
}
}
-je appliquer tous ces cas à ma collection locale IEnumerable < Package>
au lieu de la collecte de DB obtenu.
IQueryOver expose une structure de type NHibernate-'IQueryable' si je me souviens bien. Donc, les deux sont déjà quelque peu analogues. Cela dit, il est probablement préférable de passer directement à Entity Framework sur linq-to-sql pour la plupart des projets. –
@DavidL, [tag: queryover] a seulement l'utilisation de lambda en commun avec Linq, mais rien d'autre. Ils sont incompatibles API. Voir ma réponse ci-dessous pour plus de détails. –