entityloader.cs
来自「NHibernate NET开发者所需的」· CS 代码 · 共 52 行
CS
52 行
using System.Collections.Generic;
using NHibernate.Engine;
using NHibernate.Persister.Entity;
using NHibernate.Type;
namespace NHibernate.Loader.Entity
{
/// <summary>
/// Load an entity using outerjoin fetching to fetch associated entities.
/// </summary>
/// <remarks>
/// The <see cref="IEntityPersister"/> must implement <see cref="ILoadable" />. For other entities,
/// create a customized subclass of <see cref="Loader" />.
/// </remarks>
public class EntityLoader : AbstractEntityLoader
{
private readonly bool batchLoader;
public EntityLoader(IOuterJoinLoadable persister, LockMode lockMode, ISessionFactoryImplementor factory,
IDictionary<string, IFilter> enabledFilters)
: this(persister, 1, lockMode, factory, enabledFilters) {}
public EntityLoader(IOuterJoinLoadable persister, int batchSize, LockMode lockMode,
ISessionFactoryImplementor factory,
IDictionary<string, IFilter> enabledFilters)
: this(persister, persister.IdentifierColumnNames, persister.IdentifierType, batchSize, lockMode, factory, enabledFilters) {}
public EntityLoader(IOuterJoinLoadable persister, string[] uniqueKey, IType uniqueKeyType,
int batchSize, LockMode lockMode, ISessionFactoryImplementor factory, IDictionary<string, IFilter> enabledFilters)
: base(persister, uniqueKeyType, factory, enabledFilters)
{
JoinWalker walker = new EntityJoinWalker(persister, uniqueKey, batchSize, lockMode, factory, enabledFilters);
InitFromWalker(walker);
PostInstantiate();
batchLoader = batchSize > 1;
log.Debug("Static select for entity " + entityName + ": " + SqlString);
}
public object LoadByUniqueKey(ISessionImplementor session, object key)
{
return Load(session, key, null, null);
}
protected override bool IsSingleRowLoader
{
get { return !batchLoader; }
}
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?