1

Linq の多くの投稿の中から答えを見つけることができなかったので、ここにいます。NHibernate を使用して偶発的に実装されたサーバー側の実際の DAL について、クライアント側がまったく知らないクライアント サーバー アプリケーションがあります。つまり、クライアント側のアセンブリから NHibernate への参照はなく、データベースの抽象化もありません。クライアント側は、CSLA ビジネス オブジェクトに基づくエンティティに関して厳密に話します。

表示されたエンティティをクライアント側でフィルタリングできるようにしたいと思います。私の考えは、クライアント側で Linq 式を作成し、それをサーバー側に送信し、Linq を使用して式に一致するデータを NHibernate にフェッチし、それをクライアントに返すことです。

Linq をダウンロードして NHibernate にコンパイルしましたが、残念ながら、Linq 式 (別名クライアント側) をそれぞれの NHibernateContext インスタンス (別名サーバー側) から分離する例を見つけることができません。すべての例は次のように見えます

from c in db.Customers where ...

つまり、コンテキスト (db.Customers) と式 (where ...) の両方を 1 つのステートメントに含めます。

それらを切り離すことは可能ですか?ありがとう。

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 に答える