0

リンク:

私のリポジトリは常に IQueryable を返します。この理由は、IQueryable は EF に依存していませんが、ObjectQuery は依存しているためです。したがって、他のレイヤーを永続化しないようにしたい場合は、ObjectQuery への依存を導入したくありません。

a) リポジトリ ( EF を使用して実装) がIQueryable代わりに返さObjectQueryれる理由は、他の ORM も返されるクエリを使用するためIQueryableであり、リポジトリが返されることでIQueryable、EF と他の ORM を簡単に切り替えることができるためであると思います。リポジトリ?

b) EF と NHibernate 以外に、返すクエリを持つ他の ORM はありますIQueryableか?

ありがとうございました

4

1 に答える 1

0

IQueryable は式ツリーの共通語であるため、返す必要があります。それが IQueryable でない場合は、Expression を理解する何か他のものか、それよりもはるかに劣ったプログラミング経験を与える恐ろしいカスタム言語のいずれかです。

var resultsINeed = getQueryable().Where(expression1).Select(expression2);

そして、ここでの Expression の例を理解できれば、それは単に IQueryable である可能性もあります。なぜなら、それが IQueryable の要点だからです。つまり、誰もが自分のインターフェイスで再利用できる一般的な抽象化であるということです。

于 2014-09-15T16:35:44.097 に答える