使用nhibernate进行分割,结果为;无法从“确定成员”;
这可能很简单,但我似乎对nhibernate如何工作缺乏一些知识。这是我的代码:使用nhibernate进行分割,结果为;无法从“确定成员”;,nhibernate,nhlambdaextensions,Nhibernate,Nhlambdaextensions,这可能很简单,但我似乎对nhibernate如何工作缺乏一些知识。这是我的代码: ICriteria query = Session.CreateCriteria<TblProjectCategory>(); query = query.CreateCriteria<TblProjectCategory>(x => x.TblProjects) .Add<TblProject>(x => x.FldCurrentFunding != 0m)
ICriteria query = Session.CreateCriteria<TblProjectCategory>();
query = query.CreateCriteria<TblProjectCategory>(x => x.TblProjects)
.Add<TblProject>(x => x.FldCurrentFunding != 0m)
.Add<TblProject>(x => x.FldCurrentFunding / x.FldFundingGoal >= .8m)
.SetResultTransformer(
new NHibernate.Transform.DistinctRootEntityResultTransformer());
return query.List<TblProjectCategory>();
ICriteria query=Session.CreateCriteria();
query=query.CreateCriteria(x=>x.TblProjects)
.Add(x=>x.FldCurrentFunding!=0m)
.Add(x=>x.fld当前融资/x.fld融资目标>=.8m)
.SETRESULT变压器(
新的NHibernate.Transform.DistincTrotentyResultTransformer());
返回query.List();
我得到的结果错误是:“无法确定来自(x.FldCurrentFunding/x.FldFundingGoal)的成员”NHibernate无法将表达式转换为sql语句,因为is不知道如何处理x.FldCurrentFunding/x.FldFundingGoal。解决方案是将其重写为如下表达式:
ISQLFunction sqlDiv = new VarArgsSQLFunction("(", "/", ")");
(...)
.Add(
Expression.Ge(
Projections.SqlFunction(
sqlDiv,
NHibernateUtil.Double,
Projections.Property("FldCurrentFunding"),
Projections.Property("FldCurrentGoal")
),
0.8m
)
)
(...)
我希望这能给你一些指导