Je suis un débutant dans le grand monde de NHibernate. J'utilise la version 2.0.1.GA. Voici ma question. J'ai une table Cars
avec la colonne Manufacturer(nvarchar(50))
et une clé primaire ID(int)
. Ma classe .NET est:C# expressions Lambda et NHibernate
public class Car
{
public virtual int ID { get; set; }
public virtual string Manufacturer { get; set; }
}
Maintenant, si je veux récupérer toutes les voitures fabriquées par Mercedes, je dois taper ceci:
using (var session = OpenSession())
{
var cars = session
.CreateCriteria(typeof(Car))
.Add(Restrictions.Like("Manufacturer", "Mercedes"))
.List();
// ...
}
Je n'aime pas le fait que je dois préciser la nom de la propriété comme une chaîne :( est-il possible d'avoir quelque chose de plus convivial refactor probablement (c'est seulement une suggestion)?
var ms = session
.CreateCriteria<Car>()
.Add(c => c.Manufacturer, Restrictions.Like("Mercedes")
.List();
Tout comme amincit dans la version actuelle (2.0.1.GA) ou dans un futu re version?
Merci, n'a pas eu la syntaxe sur le dessus de ma tête, +1 –
Je pourrais observer que "like" et "equal" ne produiront pas les mêmes résultats. J'ai récemment essayé (pas très dur) de trouver un moyen de faire "comme" dans NHibnate.Linq. J'ai abandonné et j'ai utilisé ICriteria à la place. –
Dans une édition suggérée [Mike] (http://stackoverflow.com/users/77939/mike) a souligné que "Si vous utilisez NHibernate 3.0 ou version ultérieure, le fournisseur LINQ est intégré. L'utilisation est légèrement différente: 'session.Query .Where (c => c.Manufacturer ==" Mercedes "). ToList()' " –