本文整理汇总了C#中IOuterJoinLoadable.GetSubclassPropertyColumnNames方法的典型用法代码示例。如果您正苦于以下问题:C# IOuterJoinLoadable.GetSubclassPropertyColumnNames方法的具体用法?C# IOuterJoinLoadable.GetSubclassPropertyColumnNames怎么用?C# IOuterJoinLoadable.GetSubclassPropertyColumnNames使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IOuterJoinLoadable
的用法示例。
在下文中一共展示了IOuterJoinLoadable.GetSubclassPropertyColumnNames方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: WalkClassTree
/// <summary>
/// For an entity class, add to a list of associations to be fetched by outerjoin
/// </summary>
/// <param name="persister"></param>
/// <param name="alias"></param>
/// <param name="associations"></param>
/// <param name="visitedPersisters"></param>
/// <param name="path"></param>
/// <param name="currentDepth"></param>
/// <param name="factory"></param>
private void WalkClassTree(
IOuterJoinLoadable persister,
string alias,
IList associations,
ISet visitedPersisters,
string path,
int currentDepth,
ISessionFactoryImplementor factory )
{
int n = persister.CountSubclassProperties();
for( int i = 0; i < n; i++ )
{
IType type = persister.GetSubclassPropertyType( i );
if( type.IsAssociationType )
{
WalkAssociationTree(
( IAssociationType ) type,
persister,
i,
alias,
associations,
visitedPersisters,
path,
currentDepth,
factory
);
}
else if( type.IsComponentType )
{
WalkComponentTree(
( IAbstractComponentType ) type,
i,
persister.GetSubclassPropertyColumnNames( i ),
persister.ToColumns( alias, i ),
persister,
alias,
associations,
visitedPersisters,
SubPath( path, persister.GetSubclassPropertyName( i ) ),
currentDepth,
factory
);
}
}
}
示例2: GetLHSColumnNames
/// <summary>
/// Get the columns of the owning entity which are to
/// be used in the join
/// </summary>
public static string[] GetLHSColumnNames(
IAssociationType type,
int property,
int begin,
IOuterJoinLoadable lhsPersister,
IMapping mapping
)
{
if (type.UseLHSPrimaryKey)
{
//return lhsPersister.getSubclassPropertyColumnNames(property);
return lhsPersister.IdentifierColumnNames;
}
else
{
string propertyName = type.LHSPropertyName;
if (propertyName == null)
{
//slice, to get the columns for this component
//property
return ArrayHelper.Slice(
lhsPersister.GetSubclassPropertyColumnNames(property),
begin,
type.GetColumnSpan(mapping)
);
}
else
{
//property-refs for associations defined on a
//component are not supported, so no need to slice
return lhsPersister.GetPropertyColumnNames(propertyName);
}
}
}
示例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
);
}
}