请帮我解决以下问题:
我正在使用nHibernate 2.2,VS 2008和MySQL Db。
我有一个有效的SQL脚本:
select s.name, count(o.id) from orders o
inner join writers w
on o.assigned_to = w.id
inner join sites s
on s.id = w.site_id
where o.date between '2014-09-22 00:00:00' and '2014-09-29 00:00:00'
group by s.name
我正在尝试使用nHibernate 2.2实现它:
var collection = NHibernateManager.Session.CreateCriteria(typeof(Writers.Domain.Order), () => orderAlias)
.CreateAlias(() => orderAlias.AssignedWriter, () => writerAlias, JoinType.InnerJoin)
.CreateAlias(() => writerAlias.Site, () => siteAlias, JoinType.InnerJoin)
.Add(() => writerAlias.RegDate > period.From)
.Add(() => writerAlias.RegDate < period.To)
.SetProjection(Projections.ProjectionList()
.Add(Projections.GroupProperty(ReflectionHelper.GetMemberName((Site s) => s.Name)))
.Add(Projections.Count(ReflectionHelper.GetMemberName((Writers.Domain.Order o) => o.OrderId)), "OrderId")
).List();
但我总是收到以下错误:
无法解析属性:Writers.Domain.Order的名称。
请帮助解决这个问题。
答案 0 :(得分:0)
您收到的错误表明Writers.Domain.Order
对象没有名为Name
的属性。您的Writers.Domain.Order
对象上是否有Name
属性?您的数据库中的orders
表格是否有Name
列?如果缺少其中任何一个,您可能会收到这样的错误。