Ich benutze Nhibernate v2.1.2.4000. Mit many-to-many-Beziehung zwischen Beiträge ein Schlagwörter Ich habe die Abfrage:Linq zu NHibernate - Bestellung anonymer Typ
tags
.Select(t => new { Name = t.Name, Count = t.Posts.Count })
.OrderBy(x => x.Count);
anonymen Typ Bestellung fehlschlägt (Verweis nicht auf eine Instanz eines Objekts festgelegt). Hat dieses Problem etwas mit LinqToNH zu tun? Was kann die Ursache für diesen Fehler sein? Was ist die Lösung? Wenn es etwas mit LinqToNH verbunden ist, dann wie kann es mit einer anderen Option (dh Kriterien-API) gelöst werden?
EDIT: Wenn ich Adams ICriteria Option versuchen, sagt SQLProfiler ausgeführt Skript ist:
SELECT this_.Name as y0_, count(this_.Id) as y1_ FROM Tag this_ GROUP BY this_.Name ORDER BY count(this_.Id) asc
Mapping für 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();
}
}
danke für die Antwort wechseln. Ein Upgrade auf 3.0 ist zur Zeit leider nicht möglich. Wie kann es mit der Kriterien-API geschrieben werden? Außerdem habe ich die Frage für die Kriterien-API-Option bearbeitet. – rovsen
Adam, wenn ich versuche, diese ICriteria-Version in der Ergebnismenge ist immer 1, obwohl nicht alle sie sind 1. Haben Sie eine Idee, warum das passiert? – rovsen
Können Sie eine Eins-zu-viele-Beziehung anstelle einer Viele-zu-Viele-Beziehung definieren? Haben Sie Zugriff auf SQL Server Profiler? Versuchen Sie, das auszuführen und zu sehen, welche SQL Sie aus dem Anruf erhalten. Ich habe eine Demo-App gebaut, um meine ICriteria zu testen, aber ich habe hier keinen Zugriff darauf. –