SetProjection()を使用する場合のデータベース理論とNHibernateの観点から、Projectionとは何ですか?
投影は、リレーショナル代数の基本操作の1つです。リレーションと、そのリレーションの属性の(空の場合もある)リストを入力として受け取ります。指定された属性リストのみを含むリレーションを出力します重複するタプルを削除して。つまり、出力もリレーションでなければなりません。
たとえば、リレーションR {A、B}に3つのタプル{1,10}、{2,10}、{3,20}が含まれる場合、属性リスト{B}上のRの射影には2つのタプルが含まれます。{ 10}、{20}。
要するに、射影はSQLのSELECT DISTINCTとほぼ同等です(NULLと重複列のあるケースを除く)。
非常に簡単に言えば、入力(データベースの行など)を受け取り、出力(行の列の1つ、または複数の列に基づく計算など)を生成する関数です。
投影とは、クエリ内の列のサブセットを意味します。
select x, y, z from YourTable
x、y、zはここでの投影です。
休止状態に関しては、選択する列を指定するようなものです。マッピングにフェッチする列を決定させるのとは対照的に。これは、ProjectionListを使用して、SQL関数、サブクエリ、単一の列、または上記のすべてを指定できることを意味します。たとえば、テーブルSetProjection(Projections.RowCount())
の行をカウントする場合。