我使用的是Nhibernate v2.1.2.4000。随着标签帖子之间的许多一对多的关系,我有查询:Linq to NHibernate - 订购匿名类型
tags
.Select(t => new { Name = t.Name, Count = t.Posts.Count })
.OrderBy(x => x.Count);
订购匿名类型失败(引用不设置到对象的实例)。这个问题与LinqToNH有关吗?什么可能是这个错误的来源?解决办法是什么? 如果它与LinqToNH有关,那么如何用其他选项(即Criteria API)解决它?
编辑:当我尝试亚当的ICriteria选项,SqlProfiler说执行的脚本是:
SELECT this_.Name as y0_, count(this_.Id) as y1_ FROM Tag this_ GROUP BY this_.Name ORDER BY count(this_.Id) asc
的映射标签:
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();
}
}
切换。不幸的是,升级到3.0不是目前的选择。如何使用Criteria API编写它?我也编辑了Criteria API选项的问题。 – rovsen 2010-12-01 21:02:44
亚当,当我尝试结果集计数ICriteria版本总是1,虽然不是所有他们都是1.你知道为什么会发生这种情况吗? – rovsen 2010-12-02 21:57:53