本文整理汇总了C#中ISessionFactoryImplementor类的典型用法代码示例。如果您正苦于以下问题:C# ISessionFactoryImplementor类的具体用法?C# ISessionFactoryImplementor怎么用?C# ISessionFactoryImplementor使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
ISessionFactoryImplementor类属于命名空间,在下文中一共展示了ISessionFactoryImplementor类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C#代码示例。
示例1: Render
/// <summary>
/// Applies the template to passed in arguments.
/// </summary>
/// <param name="args">args function arguments</param>
/// <param name="factory">generated SQL function call</param>
/// <returns></returns>
public SqlString Render(IList args, ISessionFactoryImplementor factory)
{
SqlStringBuilder buf = new SqlStringBuilder();
foreach (TemplateChunk tc in chunks)
{
if (tc.ArgumentIndex != InvalidArgumentIndex)
{
int adjustedIndex = tc.ArgumentIndex - 1; // Arg indices are one-based
object arg = adjustedIndex < args.Count ? args[adjustedIndex] : null;
// TODO: if (arg == null) QueryException is better ?
if (arg != null)
{
if (arg is Parameter || arg is SqlString)
{
buf.AddObject(arg);
}
else
{
buf.Add(arg.ToString());
}
}
}
else
{
buf.Add(tc.Text);
}
}
return buf.ToSqlString();
}
开发者ID:zibler,项目名称:zibler,代码行数:35,代码来源:SQLFunctionTemplate.cs
示例2: SqlGenerator
public SqlGenerator(ISessionFactoryImplementor sfi, ITreeNodeStream input)
: this(input)
{
parseErrorHandler = new ErrorCounter();
sessionFactory = sfi;
writer = new DefaultWriter(this);
}
开发者ID:umittal,项目名称:MunimJi,代码行数:7,代码来源:SqlGenerator.cs
示例3: CriteriaJoinWalker
public CriteriaJoinWalker(IOuterJoinLoadable persister,CriteriaQueryTranslator translator,
ISessionFactoryImplementor factory, CriteriaImpl criteria, string rootEntityName,
IDictionary<string, IFilter> enabledFilters)
: base(translator.RootSQLAlias, persister, factory, enabledFilters)
{
this.translator = translator;
querySpaces = translator.GetQuerySpaces();
if (translator.HasProjection)
{
resultTypes = translator.ProjectedTypes;
InitProjection(
translator.GetSelect(enabledFilters),
translator.GetWhereCondition(enabledFilters),
translator.GetOrderBy(),
translator.GetGroupBy().ToString(),
LockMode.None
);
}
else
{
resultTypes = new IType[] {TypeFactory.ManyToOne(persister.EntityName)};
InitAll(translator.GetWhereCondition(enabledFilters), translator.GetOrderBy(), LockMode.None);
}
userAliasList.Add(criteria.Alias); //root entity comes *last*
userAliases = ArrayHelper.ToStringArray(userAliasList);
}
开发者ID:zibler,项目名称:zibler,代码行数:31,代码来源:CriteriaJoinWalker.cs
示例4: SubselectOneToManyLoader
public SubselectOneToManyLoader(IQueryableCollection persister, SqlString subquery, ICollection<EntityKey> entityKeys,
QueryParameters queryParameters,
ISessionFactoryImplementor factory, IDictionary<string, IFilter> enabledFilters)
: base(persister, BatchSizeForSubselectFetching, factory, enabledFilters)
{
keys = new object[entityKeys.Count];
int i = 0;
foreach (EntityKey entityKey in entityKeys)
{
keys[i++] = entityKey.Identifier;
}
// NH Different behavior: to deal with positionslParameter+NamedParameter+ParameterOfFilters
namedParameters = new Dictionary<string, TypedValue>(queryParameters.NamedParameters);
parametersSpecifications = queryParameters.ProcessedSqlParameters.ToList();
var processedRowSelection = queryParameters.ProcessedRowSelection;
SqlString finalSubquery = subquery;
if (queryParameters.ProcessedRowSelection != null && !SubselectClauseExtractor.HasOrderBy(queryParameters.ProcessedSql))
{
// when the original query has an "ORDER BY" we can't re-apply the pagination.
// This is a simplification, we should actually check which is the "ORDER BY" clause because when the "ORDER BY" is just for the PK we can re-apply "ORDER BY" and pagination.
finalSubquery = GetSubSelectWithLimits(subquery, parametersSpecifications, processedRowSelection, namedParameters);
}
InitializeFromWalker(persister, finalSubquery, BatchSizeForSubselectFetching, enabledFilters, factory);
types = queryParameters.PositionalParameterTypes;
values = queryParameters.PositionalParameterValues;
}
开发者ID:Ruhollah,项目名称:nhibernate-core,代码行数:28,代码来源:SubselectOneToManyLoader.cs
示例5: AbstractEntityJoinWalker
public AbstractEntityJoinWalker(string rootSqlAlias, IOuterJoinLoadable persister, ISessionFactoryImplementor factory,
IDictionary<string, IFilter> enabledFilters)
: base(factory, enabledFilters)
{
this.persister = persister;
alias = rootSqlAlias;
}
开发者ID:pallmall,项目名称:WCell,代码行数:7,代码来源:AbstractEntityJoinWalker.cs
示例6: OneToManyLoader
public OneToManyLoader(
IQueryableCollection oneToManyPersister,
ISessionFactoryImplementor session,
IDictionary enabledFilters)
: this(oneToManyPersister, 1, session, enabledFilters)
{
}
开发者ID:Novthirteen,项目名称:sconit_timesseiko,代码行数:7,代码来源:OneToManyLoader.cs
示例7: RenderText
public override SqlString RenderText(ISessionFactoryImplementor sessionFactory)
{
ProcessText();
IType type = _expectedType ?? _heuristicType;
return new SqlString(ResolveToLiteralString( type ));
}
开发者ID:hazzik,项目名称:nh-contrib-everything,代码行数:7,代码来源:JavaConstantNode.cs
示例8: SQLQueryReturnProcessor
public SQLQueryReturnProcessor(
ISQLQueryReturn[] queryReturns,
ISessionFactoryImplementor factory)
{
this.queryReturns = queryReturns;
this.factory = factory;
}
开发者ID:Novthirteen,项目名称:sconit_timesseiko,代码行数:7,代码来源:SQLQueryReturnProcessor.cs
示例9: AbstractEntityLoader
public AbstractEntityLoader(IOuterJoinLoadable persister, IType uniqueKeyType, ISessionFactoryImplementor factory,
IDictionary<string, IFilter> enabledFilters) : base(factory, enabledFilters)
{
this.uniqueKeyType = uniqueKeyType;
entityName = persister.EntityName;
this.persister = persister;
}
开发者ID:paulbatum,项目名称:nhibernate,代码行数:7,代码来源:AbstractEntityLoader.cs
示例10: ToSqlString
/// <summary>
///
/// </summary>
/// <param name="factory"></param>
/// <param name="persistentClass"></param>
/// <param name="alias"></param>
/// <returns></returns>
public override SqlString ToSqlString( ISessionFactoryImplementor factory, System.Type persistentClass, string alias, IDictionary aliasClasses )
{
//TODO: add default capacity
SqlStringBuilder sqlBuilder = new SqlStringBuilder();
IType propertyType = AbstractCriterion.GetType( factory, persistentClass, _propertyName, aliasClasses );
string[ ] columnNames = AbstractCriterion.GetColumns( factory, persistentClass, _propertyName, alias, aliasClasses );
Parameter[ ] parameters = Parameter.GenerateParameters( factory, columnNames, propertyType );
if( columnNames.Length != 1 )
{
throw new HibernateException( "insensitive like may only be used with single-column properties" );
}
if( factory.Dialect is PostgreSQLDialect )
{
sqlBuilder.Add( columnNames[ 0 ] );
sqlBuilder.Add( " ilike " );
}
else
{
sqlBuilder.Add( factory.Dialect.LowercaseFunction )
.Add( "(" )
.Add( columnNames[ 0 ] )
.Add( ")" )
.Add( " like " );
}
sqlBuilder.Add( parameters[ 0 ] );
return sqlBuilder.ToSqlString();
}
开发者ID:rcarrillopadron,项目名称:nhibernate-1.0.2.0,代码行数:39,代码来源:InsensitiveLikeExpression.cs
示例11: SqlEntityBulkCopy
/// <summary>
/// Wrapper class to produce an Ado.Net Datatable from any entity,
/// and perform SqlBulkCopy operations
/// </summary>
public SqlEntityBulkCopy(string sqlCnnString, Type entityType)
{
if (Cfg == null)
{
//Note: The NHibernate.Cfg.Configuration is meant only as an initialization-time object.
//Note: NHibernate.ISessionFactory is immutable and does not retain any association back to the Session
Cfg = new Configuration();
//Cfg.SetProperty("proxyfactory.factory_class", "NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle");
Cfg.SetProperty("dialect", "NHibernate.Dialect.MsSql2008Dialect");
Cfg.SetProperty("connection.provider", "NHibernate.Connection.DriverConnectionProvider");
Cfg.SetProperty("connection.driver_class", "NHibernate.Driver.SqlClientDriver");
Cfg.SetProperty("connection.connection_string", sqlCnnString);
//add all the mappings embedded in this assembly
Cfg.AddAssembly(typeof(SqlEntityBulkCopy).Assembly);
var sessionFactory = Cfg.BuildSessionFactory();
SessionFactoryImpl = (ISessionFactoryImplementor)sessionFactory;
}
EntityType = entityType;
//_session = SessionFactoryImpl.OpenSession();
_metaData = SessionFactoryImpl.GetClassMetadata(EntityType);
_persistentClass = Cfg.GetClassMapping(EntityType);
_sqlCnn = new SqlConnection(sqlCnnString);
_sqlBulkCopy = new SqlBulkCopy(_sqlCnn);
//Debug.WriteLine("EntityName = " + _metaData.EntityName);
//Debug.WriteLine("IdentifierPropertyName = " + _metaData.IdentifierPropertyName);
//Debug.WriteLine("IdentifierType = " + _metaData.IdentifierType);
BuildDataTable();
BuildAndMapSqlBulkCopy();
}
开发者ID:dzstoever,项目名称:ZenFacades,代码行数:38,代码来源:SqlEntityBulkCopy.cs
示例12: CreateQueryTranslators
public IQueryTranslator[] CreateQueryTranslators(string queryString, string collectionRole, bool shallow, IDictionary<string, IFilter> filters, ISessionFactoryImplementor factory)
{
var ast = new HqlParseEngine(queryString, collectionRole != null, factory).Parse();
return CreateQueryTranslators(ast, queryString, collectionRole, shallow,
filters, factory);
}
开发者ID:paulbatum,项目名称:nhibernate,代码行数:7,代码来源:ASTQueryTranslatorFactory.cs
示例13: BasicCollectionJoinWalker
public BasicCollectionJoinWalker(
IQueryableCollection collectionPersister,
int batchSize,
SqlString subquery,
ISessionFactoryImplementor factory,
IDictionary enabledFilters)
: base(factory, enabledFilters)
{
this.collectionPersister = collectionPersister;
string alias = GenerateRootAlias(collectionPersister.Role);
WalkCollectionTree(collectionPersister, alias);
IList allAssociations = new ArrayList();
ArrayHelper.AddAll(allAssociations, associations);
allAssociations.Add(new OuterJoinableAssociation(
collectionPersister.CollectionType,
null,
null,
alias,
JoinType.LeftOuterJoin,
Factory,
enabledFilters
));
InitPersisters(allAssociations, LockMode.None);
InitStatementString(alias, batchSize, subquery);
}
开发者ID:Novthirteen,项目名称:sconit_timesseiko,代码行数:28,代码来源:BasicCollectionJoinWalker.cs
示例14: EntityKey
private EntityKey(
object id,
object identifierSpace,
System.Type clazz,
IType identifierType,
bool isBatchLoadable,
ISessionFactoryImplementor factory)
{
if (id == null)
{
throw new ArgumentNullException("id");
}
if (!identifierType.ReturnedClass.IsAssignableFrom(id.GetType()))
{
throw new ArgumentException("identifier type mismatch", "id");
}
this.identifier = id;
this.identifierSpace = identifierSpace;
this.clazz = clazz;
this.identifierType = identifierType;
this.isBatchLoadable = isBatchLoadable;
this.factory = factory;
this.hashCode = GenerateHashCode();
}
开发者ID:Novthirteen,项目名称:sconit_timesseiko,代码行数:26,代码来源:EntityKey.cs
示例15: SqlCommandImpl
public SqlCommandImpl(SqlString query, ICollection<IParameterSpecification> specifications, QueryParameters queryParameters, ISessionFactoryImplementor factory)
{
this.query = query;
this.specifications = specifications;
this.queryParameters = queryParameters;
this.factory = factory;
}
开发者ID:JKeyser,项目名称:nhibernate-core,代码行数:7,代码来源:SqlCommandImpl.cs
示例16: ToSqlString
/// <summary>
///
/// </summary>
/// <param name="factory"></param>
/// <param name="persistentClass"></param>
/// <param name="alias"></param>
/// <returns></returns>
public override SqlString ToSqlString( ISessionFactoryImplementor factory, System.Type persistentClass, string alias, IDictionary aliasClasses )
{
//TODO: add default capacity
SqlStringBuilder sqlBuilder = new SqlStringBuilder();
string[ ] columnNames = AbstractCriterion.GetColumns( factory, persistentClass, _propertyName, alias, aliasClasses );
for( int i = 0; i < columnNames.Length; i++ )
{
if( i > 0 )
{
sqlBuilder.Add( " and " );
}
sqlBuilder.Add( columnNames[ i ] )
.Add( " is null" );
}
if( columnNames.Length > 1 )
{
sqlBuilder.Insert( 0, "(" );
sqlBuilder.Add( ")" );
}
return sqlBuilder.ToSqlString();
}
开发者ID:rcarrillopadron,项目名称:nhibernate-1.0.2.0,代码行数:33,代码来源:NullExpression.cs
示例17: InfoString
/// <summary>
/// Generate small message that can be used in traces and exception messages.
/// </summary>
/// <param name="persister">The <see cref="IEntityPersister" /> for the class in question.</param>
/// <param name="id">The identifier of the object.</param>
/// <param name="factory">The <see cref="ISessionFactory" />.</param>
/// <returns>A descriptive <see cref="String" /> in the format of <c>[classname#id]</c></returns>
public static string InfoString(IEntityPersister persister, object id, ISessionFactoryImplementor factory)
{
StringBuilder s = new StringBuilder();
s.Append('[');
if (persister == null)
{
s.Append("<null Class>");
}
else
{
s.Append(persister.EntityName);
}
s.Append('#');
if (id == null)
{
s.Append("<null>");
}
else
{
s.Append(id);
}
s.Append(']');
return s.ToString();
}
开发者ID:hazzik,项目名称:nh-contrib-everything,代码行数:33,代码来源:MessageHelper.cs
示例18: SQLQueryContext
public SQLQueryContext(INativeSQLQueryReturn[] queryReturns, ISessionFactoryImplementor factory)
{
this.factory = factory;
// first, break down the returns into maps keyed by alias
// so that role returns can be more easily resolved to their owners
foreach (INativeSQLQueryReturn rtn in queryReturns)
{
var nonScalarRtn = rtn as NativeSQLQueryNonScalarReturn;
if (nonScalarRtn != null)
{
alias2Return[nonScalarRtn.Alias] = rtn;
var joinRtn = rtn as NativeSQLQueryJoinReturn;
if (joinRtn != null)
{
alias2OwnerAlias[joinRtn.Alias] = joinRtn.OwnerAlias;
}
}
}
// Now, process the returns
foreach (INativeSQLQueryReturn rtn in queryReturns)
{
ProcessReturn(rtn);
}
}
开发者ID:ggeurts,项目名称:nhibernate-core,代码行数:26,代码来源:SQLQueryContext.cs
示例19: ToSqlString
public override SqlString ToSqlString( ISessionFactoryImplementor factory, System.Type persistentClass, string alias, IDictionary aliasClasses )
{
if( _criteria.Count == 0 )
{
return new SqlString( "1=1" );
}
//TODO: add default capacity
SqlStringBuilder sqlBuilder = new SqlStringBuilder();
sqlBuilder.Add( "(" );
for( int i = 0; i < _criteria.Count - 1; i++ )
{
sqlBuilder.Add(
( ( ICriterion ) _criteria[ i ] ).ToSqlString( factory, persistentClass, alias, aliasClasses ) );
sqlBuilder.Add( Op );
}
sqlBuilder.Add(
( ( ICriterion ) _criteria[ _criteria.Count - 1 ] ).ToSqlString( factory, persistentClass, alias, aliasClasses ) );
sqlBuilder.Add( ")" );
return sqlBuilder.ToSqlString();
}
开发者ID:rcarrillopadron,项目名称:nhibernate-1.0.2.0,代码行数:27,代码来源:Junction.cs
示例20: Render
public SqlString Render(IList args, ISessionFactoryImplementor factory)
{
//ANSI-SQL92 definition
//<general set function> ::=
//<set function type> <leftparen> [ <setquantifier> ] <value expression> <right paren>
//<set function type> : := AVG | MAX | MIN | SUM | COUNT
//<setquantifier> ::= DISTINCT | ALL
if (args.Count < 1 || args.Count > 2)
{
throw new QueryException(string.Format("Aggregate {0}(): Not enough parameters (attended from 1 to 2).", name));
}
else if ("*".Equals(args[args.Count - 1]) && !acceptAsterisk)
{
throw new QueryException(string.Format("Aggregate {0}(): invalid argument '*'.", name));
}
SqlStringBuilder cmd = new SqlStringBuilder();
cmd.Add(name)
.Add("(");
if (args.Count > 1)
{
object firstArg = args[0];
if (!StringHelper.EqualsCaseInsensitive("distinct", firstArg.ToString()) &&
!StringHelper.EqualsCaseInsensitive("all", firstArg.ToString()))
{
throw new QueryException(string.Format("Aggregate {0}(): token unknow {1}.", name, firstArg));
}
cmd.AddObject(firstArg).Add(" ");
}
cmd.AddObject(args[args.Count - 1])
.Add(")");
return cmd.ToSqlString();
}
开发者ID:ray2006,项目名称:WCell,代码行数:33,代码来源:ClassicAggregateFunction.cs
注:本文中的ISessionFactoryImplementor类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论