subselectcollectionloader.cs
来自「NHibernate NET开发者所需的」· CS 代码 · 共 51 行
CS
51 行
using System.Collections;
using System.Collections.Generic;
using NHibernate.Engine;
using NHibernate.Persister.Collection;
using NHibernate.SqlCommand;
using NHibernate.Type;
namespace NHibernate.Loader.Collection
{
public class SubselectCollectionLoader : BasicCollectionLoader
{
private readonly object[] keys;
private readonly IType[] types;
private readonly object[] values;
private readonly IDictionary namedParameters;
private readonly IDictionary namedParameterLocMap;
public SubselectCollectionLoader(
IQueryableCollection persister,
SqlString subquery,
ICollection entityKeys,
QueryParameters queryParameters,
IDictionary namedParameterLocMap,
ISessionFactoryImplementor factory,
IDictionary<string, IFilter> enabledFilters)
: base(persister, 1, subquery, factory, enabledFilters)
{
keys = new object[entityKeys.Count];
int i = 0;
foreach (EntityKey entityKey in entityKeys)
{
keys[i++] = entityKey.Identifier;
}
namedParameters = queryParameters.NamedParameters;
types = queryParameters.FilteredPositionalParameterTypes;
values = queryParameters.FilteredPositionalParameterValues;
this.namedParameterLocMap = namedParameterLocMap;
}
public override void Initialize(object id, ISessionImplementor session)
{
LoadCollectionSubselect(session, keys, values, types, namedParameters, KeyType);
}
public override int[] GetNamedParameterLocs(string name)
{
return (int[]) namedParameterLocMap[name];
}
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?