我在LINQ上的许多帖子中都找不到答案,所以我在这里。我们有一个客户端服务器应用程序,在该应用程序中,客户端绝对不了解服务器端的实际DAL,该应用程序是使用Nhibernate偶然实现的。意思是,没有从客户端组件中提到NHIBERNATE的引用,也没有数据库抽象。客户端严格按照基于CSLA业务对象的实体条款进行讲话。

我想让客户端过滤显示的实体。我的想法是让客户端构造LINQ表达式,将其传输到服务器端,获取使用Linq匹配表达式的数据以Nhibernate并将其返回给客户端。

我已经下载并编译了linq到NHIBERNATE,但不幸的是,我找不到一个从相应的NHIBERNATECONTEXT实例(AKA服务器端)中解除Linq Expressions(又称客户端)的示例。所有的例子似乎都像

from c in db.Customers where ...

即一个语句中的上下文(db.customers)和表达式(其中...)。

可以将它们解散吗?谢谢。

有帮助吗?

解决方案 2

事实证明这很容易 - from c in db.Customers where linq-exp select c 等同于 db.Customers.Where(linq-exp).

实际上,我需要这是一个更广泛问题的一部分 - 在客户端指定LINQ表达式,并使用它在服务器端获取数据。我的帖子 这里 在更多细节上描述它。

其他提示

看看这篇文章。您可以使用此概念传递查询参数,然后动态构建查询。

LINQ查询内置的foreach循环总是从最后一次迭代中获取参数值

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top