当前位置: 首页>>代码示例>>C#>>正文


C# IOuterJoinLoadable.GetSubclassPropertyTableName方法代码示例

本文整理汇总了C#中IOuterJoinLoadable.GetSubclassPropertyTableName方法的典型用法代码示例。如果您正苦于以下问题:C# IOuterJoinLoadable.GetSubclassPropertyTableName方法的具体用法?C# IOuterJoinLoadable.GetSubclassPropertyTableName怎么用?C# IOuterJoinLoadable.GetSubclassPropertyTableName使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在IOuterJoinLoadable的用法示例。


在下文中一共展示了IOuterJoinLoadable.GetSubclassPropertyTableName方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: WalkComponentTree

		/// <summary>
		/// For a component, add to a list of associations to be fetched by outerjoin
		/// </summary>
		/// <param name="componentType"></param>
		/// <param name="propertyNumber"></param>
		/// <param name="cols"></param>
		/// <param name="persister"></param>
		/// <param name="alias"></param>
		/// <param name="associations"></param>
		/// <param name="visitedPersisters"></param>
		/// <param name="aliasedCols"></param>
		/// <param name="path"></param>
		/// <param name="currentDepth"></param>
		/// <param name="factory"></param>
		private void WalkComponentTree(
			IAbstractComponentType componentType,
			int propertyNumber,
			string[ ] cols,
			string[ ] aliasedCols,
			IOuterJoinLoadable persister,
			string alias,
			IList associations,
			ISet visitedPersisters,
			string path,
			int currentDepth,
			ISessionFactoryImplementor factory )
		{
			IType[ ] types = componentType.Subtypes;
			string[ ] propertyNames = componentType.PropertyNames;
			int begin = 0;
			for( int i = 0; i < types.Length; i++ )
			{
				int length = types[ i ].GetColumnSpan( factory );
				string[ ] range = ArrayHelper.Slice( cols, begin, length );
				string[ ] aliasedRange = ArrayHelper.Slice( aliasedCols, begin, length );

				if( types[ i ].IsAssociationType )
				{
					IAssociationType associationType = ( IAssociationType ) types[ i ];

					if ( IsJoinedFetchAlwaysDisabled( persister, associationType, propertyNumber ) )
					{
						return;
					}

					string[] aliasedFkColumns = GetAliasedForeignKeyColumns( persister, alias, associationType, aliasedRange );
					string[] fkColumns = GetForeignKeyColumns( persister, associationType, range );
					string subpath = SubPath( path, propertyNames[ i ] );
					JoinType joinType = GetJoinType(
						associationType,
						componentType.EnableJoinedFetch( i ),
						subpath,
						persister.GetSubclassPropertyTableName( propertyNumber ),
						fkColumns,
						factory
						);

					if ( joinType != JoinType.None )
					{
						WalkAssociationTree(
							associationType,
							aliasedFkColumns,
							persister,
							alias,
							associations,
							visitedPersisters,
							subpath,
							currentDepth,
							joinType,
							factory
							);
					}
				}
				else if( types[ i ].IsComponentType )
				{
					string subpath = SubPath( path, propertyNames[ i ] );

					WalkComponentTree( 
						( IAbstractComponentType ) types[ i ], 
						propertyNumber, 
						range, 
						aliasedRange, 
						persister, 
						alias, 
						associations, 
						visitedPersisters, 
						subpath, 
						currentDepth,
						factory
						);
				}
				begin += length;
			}
		}
开发者ID:rcarrillopadron,项目名称:nhibernate-1.0.2.0,代码行数:94,代码来源:OuterJoinLoader.cs

示例2: GetLHSTableName

 public static string GetLHSTableName(
     IAssociationType type,
     int property,
     IOuterJoinLoadable lhsPersister
     )
 {
     if (type.UseLHSPrimaryKey)
     {
         return lhsPersister.TableName;
     }
     else
     {
         string propertyName = type.LHSPropertyName;
         if (propertyName == null)
         {
             //if there is no property-ref, assume the join
             //is to the subclass table (ie. the table of the
             //subclass that the association belongs to)
             return lhsPersister.GetSubclassPropertyTableName(property);
         }
         else
         {
             //handle a property-ref
             string propertyRefTable = lhsPersister.GetPropertyTableName(propertyName);
             if (propertyRefTable == null)
             {
                 //it is possible that the tree-walking in OuterJoinLoader can get to
                 //an association defined by a subclass, in which case the property-ref
                 //might refer to a property defined on a subclass of the current class
                 //in this case, the table name is not known - this temporary solution
                 //assumes that the property-ref refers to a property of the subclass
                 //table that the association belongs to (a reasonable guess)
                 //TODO: fix this, add: IOuterJoinLoadable.getSubclassPropertyTableName(string propertyName)
                 propertyRefTable = lhsPersister.GetSubclassPropertyTableName(property);
             }
             return propertyRefTable;
         }
     }
 }
开发者ID:zibler,项目名称:zibler,代码行数:39,代码来源:JoinHelper.cs

示例3: WalkAssociationTree

		private void WalkAssociationTree(
			IAssociationType associationType,
			IOuterJoinLoadable persister,
			int propertyNumber,
			string alias,
			IList associations,
			ISet visitedPersisters,
			string path,
			int currentDepth,
			ISessionFactoryImplementor factory )
		{
			string[] aliasedForeignKeyColumns = GetAliasedForeignKeyColumns( persister, alias, associationType, persister.ToColumns( alias, propertyNumber ) );
			string[] foreignKeyColumns = GetForeignKeyColumns( persister, associationType, persister.GetSubclassPropertyColumnNames( propertyNumber ) );

			if ( IsJoinedFetchAlwaysDisabled( persister, associationType, propertyNumber ) )
			{
				return;
			}
			
			string subpath = SubPath( path, persister.GetSubclassPropertyName( propertyNumber ) );
			JoinType joinType = GetJoinType(
				associationType,
				persister.EnableJoinedFetch( propertyNumber ),
				subpath,
				persister.GetSubclassPropertyTableName( propertyNumber ),
				foreignKeyColumns,
				factory
				);

			if ( joinType != JoinType.None )
			{
				WalkAssociationTree( 
					associationType, 
					aliasedForeignKeyColumns, 
					persister, 
					alias, 
					associations, 
					visitedPersisters, 
					subpath, 
					currentDepth,
					joinType,
					factory
					);
			}
		}
开发者ID:rcarrillopadron,项目名称:nhibernate-1.0.2.0,代码行数:45,代码来源:OuterJoinLoader.cs


注:本文中的IOuterJoinLoadable.GetSubclassPropertyTableName方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。