1

我在 Linq 上的许多帖子中找不到答案,所以我在这里。我们有一个客户端-服务器应用程序,其中客户端完全不知道服务器端的实际 DAL,这是偶然使用 NHibernate 实现的。这意味着,客户端程序集中没有对 NHibernate 的引用,也没有数据库抽象。客户端严格按照基于 CSLA 业务对象的实体来表述。

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

我已将 Linq 下载并编译到 NHibernate,但不幸的是,我找不到将 Linq 表达式(又名客户端)与相应的 NHibernateContext 实例(又名服务器端)分离的示例。所有的例子似乎都像

from c in db.Customers where ...

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

是否可以将它们解耦?谢谢。

4

2 回答 2

0

看看这个帖子。您可以使用此概念传入查询参数,然后动态构建您的查询。

foreach 循环中内置的 Linq 查询始终从上次迭代中获取参数值

于 2009-07-06T04:37:02.943 回答
0

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

我实际上需要将此作为更广泛问题的一部分 - 在客户端指定一个 linq 表达式并使用它在服务器端获取数据。我的帖子在这里更详细地描述了它。

于 2009-07-17T13:45:26.527 回答