标签: nhlambdaextensions

如何使用lambdas表达"不在"?

我正在尝试not in使用NHLambdaExtensions使用NHibernate Criteria API 创建一个子句.阅读文档我能够通过实现来实现该in子句

.Add(SqlExpression.In<Zone>(z => zoneAlias.ZoneId, new int[] { 1008, 1010 }))
Run Code Online (Sandbox Code Playgroud)

但是,当我把它包起来时,SqlExpression.Not我得到了错误

Error   5   The best overloaded method match for 'NHibernate.LambdaExtensions.SqlExpression.Not<oms_dal.Models.Zone>(System.Linq.Expressions.Expression<System.Func<oms_dal.Models.Zone,bool>>)' has some invalid arguments
Error   6   Argument '1': cannot convert from 'NHibernate.Criterion.ICriterion' to 'System.Linq.Expressions.Expression<System.Func<oms_dal.Models.Zone,bool>>'
Run Code Online (Sandbox Code Playgroud)

我正在使用这段代码

.Add(SqlExpression.Not<Zone>(SqlExpression.In<Zone>(x => zoneAlias.ZoneId, new int[] { 1008, 1010 })))
Run Code Online (Sandbox Code Playgroud)

我怎么能做到这一点?使用常规Criteria API我能够做到这一点

.Add(Restrictions.Not(Restrictions.In("z.ZoneId", new[] { 1008, 1010 })))
Run Code Online (Sandbox Code Playgroud)

c# nhibernate nhlambdaextensions

7
推荐指数
1
解决办法
575
查看次数

使用nhibernate划分导致"无法确定成员"

这可能很简单,但我似乎缺乏一些关于nhibernate如何工作的知识.这是我的代码:

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>();
Run Code Online (Sandbox Code Playgroud)

我得到的错误是:"无法从(x.FldCurrentFunding/x.FldFundingGoal)确定成员"

nhibernate nhlambdaextensions

5
推荐指数
1
解决办法
1196
查看次数

标签 统计

nhibernate ×2

nhlambdaextensions ×2

c# ×1