J'utilise Nhibernate v2.1.2.4000. Avec plusieurs à plusieurs entre les messages d'une balise J'ai la requête:Linq to NHibernate - commande de type anonyme
tags
.Select(t => new { Name = t.Name, Count = t.Posts.Count })
.OrderBy(x => x.Count);
de commande type anonyme échoue (référence non définie à une instance d'un objet). Cette question est-elle liée à LinqToNH? Quelle peut être la source de cette erreur? Quelle est la solution? Si c'est quelque chose lié à LinqToNH alors comment cela peut-il être résolu avec une autre option (par exemple l'API Criteria)?
EDIT: Lorsque je tente l'option ICriteria d'Adam, SQLProfiler dit script exécuté est:
SELECT this_.Name as y0_, count(this_.Id) as y1_ FROM Tag this_ GROUP BY this_.Name ORDER BY count(this_.Id) asc
Mapping Tag:
public class TagMap : ClassMap<Tag>
{
public TagMap()
{
Table("Tag");
Id(x => x.Id).GeneratedBy.GuidComb();
Map(x => x.Name);
HasManyToMany(x => x.Posts)
.Table("PostTags")
.ChildKeyColumn("Post")
.ParentKeyColumn("Tag")
.Cascade.None().Inverse();
}
}
merci pour la réponse. la mise à niveau vers 3.0 n'est malheureusement pas une option pour le moment. comment peut-il être écrit avec l'API Criteria? J'ai également modifié la question pour l'option API Criteria. – rovsen
Adam, quand j'essaie cette version d'ICriteria dans le nombre de résultats est toujours 1, bien que tous ne soient pas 1. Avez-vous une idée pourquoi cela se produit? – rovsen
Pourriez-vous définir une relation un-à-plusieurs au lieu d'une relation plusieurs-à-plusieurs? Avez-vous accès à SQL Server Profiler? Essayez d'exécuter cela et de voir ce que vous obtenez SQL hors de l'appel. J'ai construit une application de démonstration pour tester mon ICriteria mais je n'y ai pas accès ici. –