无法解析属性:PropertyName:NHibernate中的类错误

Chu*_*ris 3 c# nhibernate asp.net-mvc-3

我第一次使用NHibernate,在这一行中它为我抛出了异常

var total = session
                    .QueryOver<Comment>().Where(p => p.Entry.Author == username)
                    .ToRowCountQuery()
                    .FutureValue<int>();

                var results = session
                    .QueryOver<Comment>().Where(p => p.Entry.Author == username)
                    .Fetch(x => x.Entry).Eager()
                    .OrderBy(x => x.Posted).Desc()
                    .Skip(skip)
                    .Take(take)
                    .List();
Run Code Online (Sandbox Code Playgroud)

例外是

无法解析属性:Entry.Author of:FunnelWeb.Model.Comment

我想,问题是Entry这里没有加载对象.我怎么能用Nhibernate来做这个伎俩?

Die*_*hon 5

QueryOver只是Criteria的强类型包装器,不允许隐式深层引用.

你必须使用:

session.QueryOver<Comment>()
       .JoinQueryOver(x => x.Entry)
       .Where(x => x.Author == username)
Run Code Online (Sandbox Code Playgroud)

或者您可以使用Query<>(LINQ),它将使用您尝试过的语法.