在数据库理论和使用SetProjection()函数的NHibernate中,“Projection”是什么意思?
在数据库理论和使用SetProjection()函数的NHibernate中,“Projection”是什么意思?
投影是关系代数中的基本操作之一。它的输入为一个关系和该关系的属性(可能为空)列表,输出为只包含指定属性的关系,并去除重复元组。换句话说,输出也必须是一个关系。
例如,如果关系R{A,B}包含三个元组{1,10}、{2,10}和{3,20},则在属性列表{B}上对R进行投影将包含2个元组:{10}、{20}。
简而言之,投影与SQL中的SELECT DISTINCT相当(排除包含null和重复列的情况)。
简单来说,一个函数接受一个输入(例如数据库中的一行数据),并产生一个输出(例如该行中的某一列,或者基于多列数据进行的一些计算)。
count(columnName)
。 - mtysonProjection意味着查询中的列的子集。
select x, y, z from YourTable
这里的 x、y、z 是投影。
在Hibernate中,它就像指定要选择哪些列一样。与让映射确定要获取哪些列相反。这意味着您可以通过ProjectionList指定SQL函数、子查询、单个列或可能是所有列。例如,如果您想计算表中的行数,则可以使用SetProjection(Projections.RowCount())
。