繁体   English   中英

LINQ和Nhibernate:使用模型属性创建表达式

[英]LINQ and Nhibernate: create an Expression using a model property

我正在开始使用LINQ和NHibernate,请您能帮助我确定方向:

我需要将lambda语句传递给nhibernate .QueryOver(),该条件是基于我模型的属性的条件:

if (model.PropertyA != String.Empty) {
    var searchResults = nhibSession.QueryOver<type>(x => 
                                             x.propA == model.PropertyA)
                                   .List();
}

有没有更好的方法使用C#表达式而不是lambda语句来做到这一点? 如何使用model.PropertyA创建表达式? 我是否使用Expression.Property()或Expression.Field()?

谢谢

如何使用model.PropertyA创建表达式?

我怀疑您应该使用Expression.Constant尽管它在正常情况下不像常量那样“感觉”到它,但对于该表达式来说它是常量因为模型不是表达式输入的一部分。

Expression foo = Expression.Constant(model.PropertyA);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM