【发布时间】:2010-08-11 17:26:02
【问题描述】:
在使用 SetProjection() 时,就数据库理论和 NHibernate 而言,什么是投影?
【问题讨论】:
标签: database nhibernate relational-algebra
在使用 SetProjection() 时,就数据库理论和 NHibernate 而言,什么是投影?
【问题讨论】:
标签: database nhibernate relational-algebra
投影是关系代数的基本运算之一。它需要一个关系和一个(可能为空的)该关系的属性列表作为输入。它输出一个只包含指定属性列表的关系删除了重复的元组。换句话说,输出也必须是一个关系。
例如,如果关系 R{A,B} 包含三个元组 {1,10},{2,10},{3,20},则 R 在属性列表 {B} 上的投影将包含 2元组:{10},{20}。
简而言之,投影或多或少等同于 SQL 中的 SELECT DISTINCT(不包括空值和重复列的情况)。
【讨论】:
非常简单,它是一个函数,它接受输入(例如数据库行)并产生输出(例如行中的一列,或者可能基于多列的一些计算)。
【讨论】:
count(columnName)
投影表示查询中列的子集。
select x, y, z from YourTable
x,y,z是这里的投影。
【讨论】:
就休眠而言,它就像指定要选择的列。与让映射决定获取哪些列相反。这意味着您可以通过 ProjectionList 指定 sql 函数、子查询、单个列或以上所有内容。例如,如果您想计算表 SetProjection(Projections.RowCount()) 中的行数。
【讨论】: