Qu'est-ce qu'une projection, en termes de théorie de base de données et NHibernate lors de l'utilisation de SetProjection ()?
La projection est l'une des opérations de base de l'algèbre relationnelle. Il prend en entrée une relation et une liste (éventuellement vide) d'attributs de cette relation. Il génère une relation contenant uniquement la liste d'attributs spécifiée avec les tuples en double supprimés. En d'autres termes, la sortie doit également être une relation.
Exemple, si la relation R {A, B} contient trois tuples {1,10}, {2,10}, {3,20} alors la projection de R sur la liste d'attributs {B} contiendrait 2 tuples: { 10}, {20}.
En bref, la projection est plus ou moins équivalente à SELECT DISTINCT en SQL (hors cas avec null et colonnes en double).
Très simplement, c'est une fonction qui prend une entrée (par exemple une ligne de base de données) et produit une sortie (par exemple une des colonnes de la ligne, ou peut-être un calcul basé sur plusieurs colonnes).
La projection signifie un sous-ensemble de colonnes dans une requête.
select x, y, z from YourTable
x, y, z est la projection ici.
En termes de mise en veille prolongée, c'est comme spécifier quelles colonnes sélectionner. Au lieu de laisser les mappages déterminer quelles colonnes sont récupérées. Cela signifie que vous pouvez spécifier des fonctions sql, des sous-requêtes, une seule colonne ou peut-être tout ce qui précède via une ProjectionList. Par exemple, si vous souhaitez compter les lignes d'une table SetProjection(Projections.RowCount())
.