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


C# ISessionImplementor.GetClassBatch方法代码示例

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


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

示例1: Load

		public object Load( ISessionImplementor session, object id, object optionalObject )
		{
			object[ ] batch = session.GetClassBatch( persister.MappedClass, id, batchSize );
			IList list;
			if( smallBatchSize == 1 || batch[ smallBatchSize - 1 ] == null )
			{
				return ( ( IUniqueEntityLoader ) nonBatchLoader ).Load( session, id, optionalObject );
			}
			else if( batch[ batchSize - 1 ] == null )
			{
				if( log.IsDebugEnabled )
				{
					log.Debug( "batch loading entity (smaller batch): " + persister.MappedClass.Name );
				}
				object[ ] smallBatch = new object[smallBatchSize];
				Array.Copy( batch, 0, smallBatch, 0, smallBatchSize );
				list = smallBatchLoader.LoadEntityBatch( session, smallBatch, idType, optionalObject, id );
				log.Debug( "done batch load" );
			}
			else
			{
				if( log.IsDebugEnabled )
				{
					log.Debug( "batch loading entity: " + persister.MappedClass.Name );
				}
				list = batchLoader.LoadEntityBatch( session, batch, idType, optionalObject, id );
				log.Debug( "done batch load" );
			}

			// get the right object from the list ... would it be easier to just call getEntity() ??
			foreach( object obj in list )
			{
				if( id.Equals( session.GetEntityIdentifier( obj ) ) )
				{
					return obj;
				}
			}
			return null;
		}
开发者ID:rcarrillopadron,项目名称:nhibernate-1.0.2.0,代码行数:39,代码来源:BatchingEntityLoader.cs


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