Added: ibatis/trunk/cs/mapper/IBatisNet.DataMapper/IBatisNet.DataMapper.20005.csproj URL: http://svn.apache.org/viewcvs/ibatis/trunk/cs/mapper/IBatisNet.DataMapper/IBatisNet.DataMapper.20005.csproj?rev=373895&view=auto ============================================================================== --- ibatis/trunk/cs/mapper/IBatisNet.DataMapper/IBatisNet.DataMapper.20005.csproj (added) +++ ibatis/trunk/cs/mapper/IBatisNet.DataMapper/IBatisNet.DataMapper.20005.csproj Tue Jan 31 11:59:02 2006 @@ -0,0 +1,604 @@ +<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup> + <ProjectType>Local</ProjectType> + <ProductVersion>8.0.50727</ProductVersion> + <SchemaVersion>2.0</SchemaVersion> + <ProjectGuid>{F3E45F39-3224-4EAD-B138-EB5CC0E32824}</ProjectGuid> + <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> + <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> + <ApplicationIcon> + </ApplicationIcon> + <AssemblyKeyContainerName> + </AssemblyKeyContainerName> + <AssemblyName>IBatisNet.DataMapper</AssemblyName> + <AssemblyOriginatorKeyFile> + </AssemblyOriginatorKeyFile> + <DefaultClientScript>JScript</DefaultClientScript> + <DefaultHTMLPageLayout>Grid</DefaultHTMLPageLayout> + <DefaultTargetSchema>IE50</DefaultTargetSchema> + <DelaySign>false</DelaySign> + <OutputType>Library</OutputType> + <RootNamespace>IBatisNet.DataMapper</RootNamespace> + <RunPostBuildEvent>OnBuildSuccess</RunPostBuildEvent> + <StartupObject> + </StartupObject> + <FileUpgradeFlags> + </FileUpgradeFlags> + <UpgradeBackupLocation> + </UpgradeBackupLocation> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> + <OutputPath>bin\Debug\</OutputPath> + <AllowUnsafeBlocks>false</AllowUnsafeBlocks> + <BaseAddress>285212672</BaseAddress> + <CheckForOverflowUnderflow>false</CheckForOverflowUnderflow> + <ConfigurationOverrideFile> + </ConfigurationOverrideFile> + <DefineConstants>TRACE;DEBUG;dotnet2</DefineConstants> + <DocumentationFile>IBatisNet.DataMapper.xml</DocumentationFile> + <DebugSymbols>true</DebugSymbols> + <FileAlignment>4096</FileAlignment> + <NoStdLib>false</NoStdLib> + <NoWarn> + </NoWarn> + <Optimize>false</Optimize> + <RegisterForComInterop>false</RegisterForComInterop> + <RemoveIntegerChecks>false</RemoveIntegerChecks> + <TreatWarningsAsErrors>false</TreatWarningsAsErrors> + <WarningLevel>4</WarningLevel> + <DebugType>full</DebugType> + <ErrorReport>prompt</ErrorReport> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> + <OutputPath>bin\Release\</OutputPath> + <AllowUnsafeBlocks>false</AllowUnsafeBlocks> + <BaseAddress>285212672</BaseAddress> + <CheckForOverflowUnderflow>false</CheckForOverflowUnderflow> + <ConfigurationOverrideFile> + </ConfigurationOverrideFile> + <DefineConstants>TRACE;dotnet2</DefineConstants> + <DocumentationFile>IBatisNet.DataMapper.xml</DocumentationFile> + <DebugSymbols>false</DebugSymbols> + <FileAlignment>4096</FileAlignment> + <NoStdLib>false</NoStdLib> + <NoWarn> + </NoWarn> + <Optimize>true</Optimize> + <RegisterForComInterop>false</RegisterForComInterop> + <RemoveIntegerChecks>false</RemoveIntegerChecks> + <TreatWarningsAsErrors>false</TreatWarningsAsErrors> + <WarningLevel>4</WarningLevel> + <DebugType>none</DebugType> + <ErrorReport>prompt</ErrorReport> + </PropertyGroup> + <ItemGroup> + <Reference Include="Castle.DynamicProxy"> + <Name>Castle.DynamicProxy</Name> + <HintPath>..\External-Bin\Net\2.0\Castle.DynamicProxy.dll</HintPath> + </Reference> + <Reference Include="System"> + <Name>System</Name> + </Reference> + <Reference Include="System.Data"> + <Name>System.Data</Name> + </Reference> + <Reference Include="System.Web"> + <Name>System.Web</Name> + </Reference> + <Reference Include="System.Xml"> + <Name>System.XML</Name> + </Reference> + </ItemGroup> + <ItemGroup> + <Compile Include="..\CommonAssemblyInfo.cs"> + <Link>CommonAssemblyInfo.cs</Link> + <SubType>Code</SubType> + </Compile> + <Compile Include="AssemblyInfo.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Commands\DefaultPreparedCommand.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Commands\EmbedParamsPreparedCommand.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Commands\IPreparedCommand.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Commands\IPreparedCommandProxy.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Commands\PreparedCommandFactory.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Configuration\Alias\TypeAlias.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Configuration\Alias\TypeHandler.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Configuration\Cache\CacheKey.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Configuration\Cache\CacheModel.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Configuration\Cache\Fifo\FifoCacheController.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Configuration\Cache\FlushInterval.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Configuration\Cache\ICacheController.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Configuration\Cache\Lru\LruCacheController.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Configuration\Cache\Memory\MemoryCacheControler.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Configuration\Cache\Memory\MemoryCacheLevel.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Configuration\DomSqlMapBuilder.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Configuration\ParameterMapping\InlineParameterMapParser.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Configuration\ParameterMapping\ParameterMap.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Configuration\ParameterMapping\ParameterProperty.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Configuration\ResultMapping\Discriminator.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Configuration\ResultMapping\ResultMap.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Configuration\ResultMapping\ResultProperty.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Configuration\ResultMapping\SubMap.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Configuration\Serializers\CacheModelDeSerializer.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Configuration\Serializers\DeleteDeSerializer.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Configuration\Serializers\DeSerializerFactory.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Configuration\Serializers\DiscriminatorDeSerializer.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Configuration\Serializers\DynamicDeSerializer.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Configuration\Serializers\IDeSerializer.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Configuration\Serializers\InsertDeSerializer.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Configuration\Serializers\IsEmptyDeSerializer.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Configuration\Serializers\IsEqualDeSerializer.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Configuration\Serializers\IsGreaterEqualDeSerializer.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Configuration\Serializers\IsGreaterThanDeSerializer.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Configuration\Serializers\IsLessEqualDeSerializer.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Configuration\Serializers\IsLessThanDeSerializer.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Configuration\Serializers\IsNotEmptyDeSerializer.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Configuration\Serializers\IsNotEqualDeSerializer.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Configuration\Serializers\IsNotNullDeSerializer.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Configuration\Serializers\IsNotParameterPresentDeSerializer.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Configuration\Serializers\IsNotPropertyAvailableDeSerializer.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Configuration\Serializers\IsNullDeSerializer.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Configuration\Serializers\IsParameterPresentDeSerializer.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Configuration\Serializers\IsPropertyAvailableDeSerializer.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Configuration\Serializers\IterateSerializer.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Configuration\Serializers\ParameterMapDeSerializer.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Configuration\Serializers\ParameterPropertyDeSerializer.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Configuration\Serializers\ProcedureDeSerializer.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Configuration\Serializers\ResultMapDeSerializer.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Configuration\Serializers\ResultPropertyDeSerializer.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Configuration\Serializers\SelectDeSerializer.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Configuration\Serializers\StatementDeSerializer.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Configuration\Serializers\SubMapDeSerializer.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Configuration\Serializers\TypeAliasDeSerializer.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Configuration\Serializers\TypeHandlerDeSerializer.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Configuration\Serializers\UpdateDeSerializer.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Configuration\Sql\Dynamic\DynamicSql.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Configuration\Sql\Dynamic\Elements\BaseTag.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Configuration\Sql\Dynamic\Elements\Conditional.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Configuration\Sql\Dynamic\Elements\Dynamic.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Configuration\Sql\Dynamic\Elements\IDynamicParent.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Configuration\Sql\Dynamic\Elements\IsEmpty.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Configuration\Sql\Dynamic\Elements\IsEqual.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Configuration\Sql\Dynamic\Elements\IsGreaterEqual.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Configuration\Sql\Dynamic\Elements\IsGreaterThan.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Configuration\Sql\Dynamic\Elements\IsLessEqual.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Configuration\Sql\Dynamic\Elements\IsLessThan.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Configuration\Sql\Dynamic\Elements\IsNotEmpty.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Configuration\Sql\Dynamic\Elements\IsNotEqual.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Configuration\Sql\Dynamic\Elements\IsNotNull.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Configuration\Sql\Dynamic\Elements\IsNotParameterPresent.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Configuration\Sql\Dynamic\Elements\IsNotPropertyAvailable.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Configuration\Sql\Dynamic\Elements\IsNull.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Configuration\Sql\Dynamic\Elements\IsParameterPresent.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Configuration\Sql\Dynamic\Elements\IsPropertyAvailable.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Configuration\Sql\Dynamic\Elements\Iterate.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Configuration\Sql\Dynamic\Elements\SqlTag.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Configuration\Sql\Dynamic\Handlers\BaseTagHandler.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Configuration\Sql\Dynamic\Handlers\ConditionalTagHandler.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Configuration\Sql\Dynamic\Handlers\DynamicTagHandler.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Configuration\Sql\Dynamic\Handlers\IsEmptyTagHandler.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Configuration\Sql\Dynamic\Handlers\IsEqualTagHandler.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Configuration\Sql\Dynamic\Handlers\IsGreaterEqualTagHandler.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Configuration\Sql\Dynamic\Handlers\IsGreaterThanTagHandler.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Configuration\Sql\Dynamic\Handlers\IsLessEqualTagHandler.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Configuration\Sql\Dynamic\Handlers\IsLessThanTagHandler.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Configuration\Sql\Dynamic\Handlers\IsNotEmptyTagHandler.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Configuration\Sql\Dynamic\Handlers\IsNotEqualTagHandler.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Configuration\Sql\Dynamic\Handlers\IsNotNullTagHandler.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Configuration\Sql\Dynamic\Handlers\IsNotParameterPresentTagHandler.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Configuration\Sql\Dynamic\Handlers\IsNotPropertyAvailableTagHandler.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Configuration\Sql\Dynamic\Handlers\IsNullTagHandler.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Configuration\Sql\Dynamic\Handlers\IsParameterPresentTagHandler.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Configuration\Sql\Dynamic\Handlers\IsPropertyAvailableTagHandler.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Configuration\Sql\Dynamic\Handlers\ISqlTagHandler.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Configuration\Sql\Dynamic\Handlers\IterateContext.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Configuration\Sql\Dynamic\Handlers\IterateTagHandler.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Configuration\Sql\Dynamic\Handlers\SqlTagContext.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Configuration\Sql\Dynamic\ISqlChild.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Configuration\Sql\Dynamic\SqlText.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Configuration\Sql\ISql.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Configuration\Sql\SimpleDynamic\SimpleDynamicSql.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Configuration\Sql\Static\ProcedureSql.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Configuration\Sql\Static\StaticSql.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Configuration\Statements\Delete.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Configuration\Statements\Generate.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Configuration\Statements\Insert.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Configuration\Statements\IStatement.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Configuration\Statements\PreparedStatement.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Configuration\Statements\PreparedStatementFactory.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Configuration\Statements\Procedure.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Configuration\Statements\Select.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Configuration\Statements\SelectKey.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Configuration\Statements\SqlGenerator.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Configuration\Statements\Statement.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Configuration\Statements\Update.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Enumeration.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Exceptions\DataMapperException.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="ExecuteEventArgs.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="LazyLoadList.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="MappedStatements\CachingStatement.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="MappedStatements\DeleteMappedStatement.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="MappedStatements\IMappedStatement.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="MappedStatements\InsertMappedStatement.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="MappedStatements\MappedStatement.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="MappedStatements\PaginatedList.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="MappedStatements\SelectMappedStatement.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="MappedStatements\UpdateMappedStatement.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Mapper.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Scope\ConfigurationScope.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Scope\ErrorContext.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Scope\RequestScope.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="SessionHolder.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="SqlMapper.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="SqlMapSession.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="TypeHandlers\BaseTypeHandler.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="TypeHandlers\BooleanTypeHandler.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="TypeHandlers\ByteArrayTypeHandler.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="TypeHandlers\ByteTypeHandler.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="TypeHandlers\CharTypeHandler.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="TypeHandlers\CustomTypeHandler.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="TypeHandlers\DateTimeTypeHandler.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="TypeHandlers\DecimalTypeHandler.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="TypeHandlers\DoubleTypeHandler.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="TypeHandlers\EnumTypeHandler.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="TypeHandlers\GuidTypeHandler.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="TypeHandlers\Int16TypeHandler.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="TypeHandlers\Int32TypeHandler.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="TypeHandlers\Int64TypeHandler.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="TypeHandlers\IParameterSetter.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="TypeHandlers\IResultGetter.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="TypeHandlers\ITypeHandler.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="TypeHandlers\ITypeHandlerCallback.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="TypeHandlers\ObjectTypeHandler.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="TypeHandlers\ParameterSetterImpl.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="TypeHandlers\ResultGetterImpl.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="TypeHandlers\SingleTypeHandler.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="TypeHandlers\StringTypeHandler.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="TypeHandlers\TimeSpanTypeHandler.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="TypeHandlers\TypeHandlerFactory.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="TypeHandlers\UnknownTypeHandler.cs"> + <SubType>Code</SubType> + </Compile> + <Content Include="ChangeLog.txt" /> + <Content Include="licence.txt" /> + <Content Include="notice.txt" /> + <Content Include="ReadMe.txt" /> + <None Include="IBatisNet.DataMapper.build" /> + <EmbeddedResource Include="SqlMap.xsd" /> + <EmbeddedResource Include="SqlMapConfig.xsd" /> + </ItemGroup> + <ItemGroup> + <ProjectReference Include="..\IBatisNet.Common\IBatisNet.Common.2005.csproj"> + <Project>{BBC8DA4A-EA88-41D9-8B93-929B8F3ADADE}</Project> + <Name>IBatisNet.Common.2005</Name> + </ProjectReference> + </ItemGroup> + <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> + <PropertyGroup> + <PreBuildEvent> + </PreBuildEvent> + <PostBuildEvent> + </PostBuildEvent> + </PropertyGroup> +</Project> \ No newline at end of file
Modified: ibatis/trunk/cs/mapper/IBatisNet.DataMapper/MappedStatements/CachingStatement.cs URL: http://svn.apache.org/viewcvs/ibatis/trunk/cs/mapper/IBatisNet.DataMapper/MappedStatements/CachingStatement.cs?rev=373895&r1=373894&r2=373895&view=diff ============================================================================== --- ibatis/trunk/cs/mapper/IBatisNet.DataMapper/MappedStatements/CachingStatement.cs (original) +++ ibatis/trunk/cs/mapper/IBatisNet.DataMapper/MappedStatements/CachingStatement.cs Tue Jan 31 11:59:02 2006 @@ -26,6 +26,9 @@ #region Using using System.Collections; +#if dotnet2 +using System.Collections.Generic; +#endif using System.Data; using IBatisNet.Common; using IBatisNet.DataMapper.Commands; @@ -156,10 +159,11 @@ public object ExecuteInsert(IDalSession session, object parameterObject) { return _mappedStatement.ExecuteInsert(session, parameterObject); - } + } + #region ExecuteQueryForList - /// <summary> + /// <summary> /// Executes the SQL and and fill a strongly typed collection. /// </summary> /// <param name="session">The session used to execute the statement.</param> @@ -198,22 +202,80 @@ } return list; - } + } + /// <summary> + /// Executes the SQL and retuns all rows selected. This is exactly the same as + /// calling ExecuteQueryForList(session, parameterObject, NO_SKIPPED_RESULTS, NO_MAXIMUM_RESULTS). + /// </summary> + /// <param name="session">The session used to execute the statement.</param> + /// <param name="parameterObject">The object used to set the parameters in the SQL.</param> + /// <returns>A List of result objects.</returns> + public IList ExecuteQueryForList(IDalSession session, object parameterObject) + { + return this.ExecuteQueryForList(session, parameterObject, MappedStatement.NO_SKIPPED_RESULTS, MappedStatement.NO_MAXIMUM_RESULTS); + } + #endregion + + #region ExecuteQueryForList .NET 2.0 + #if dotnet2 + + /// <summary> + /// Executes the SQL and and fill a strongly typed collection. + /// </summary> + /// <param name="session">The session used to execute the statement.</param> + /// <param name="parameterObject">The object used to set the parameters in the SQL.</param> + /// <param name="resultObject">A strongly typed collection of result objects.</param> + public void ExecuteQueryForList<T>(IDalSession session, object parameterObject, IList<T> resultObject) + { + _mappedStatement.ExecuteQueryForList(session, parameterObject, resultObject); + } + + /// <summary> + /// Executes the SQL and retuns a subset of the rows selected. + /// </summary> + /// <param name="session">The session used to execute the statement.</param> + /// <param name="parameterObject">The object used to set the parameters in the SQL.</param> + /// <param name="skipResults">The number of rows to skip over.</param> + /// <param name="maxResults">The maximum number of rows to return.</param> + /// <returns>A List of result objects.</returns> + public IList<T> ExecuteQueryForList<T>(IDalSession session, object parameterObject, int skipResults, int maxResults) + { + IList<T> list = null; + RequestScope request = this.Statement.Sql.GetRequestScope(parameterObject, session); ; + + _mappedStatement.PreparedCommand.Create(request, session, this.Statement, parameterObject); + + CacheKey cacheKey = this.GetCacheKey(request); + cacheKey.Update("ExecuteQueryForList"); + cacheKey.Update(skipResults); + cacheKey.Update(maxResults); + + list = this.Statement.CacheModel[cacheKey] as IList<T>; + if (list == null) + { + list = _mappedStatement.RunQueryForList<T>(request, session, parameterObject, skipResults, maxResults, null); + this.Statement.CacheModel[cacheKey] = list; + } + + return list; + } + /// <summary> + /// Executes the SQL and retuns all rows selected. This is exactly the same as + /// calling ExecuteQueryForList(session, parameterObject, NO_SKIPPED_RESULTS, NO_MAXIMUM_RESULTS). + /// </summary> + /// <param name="session">The session used to execute the statement.</param> + /// <param name="parameterObject">The object used to set the parameters in the SQL.</param> + /// <returns>A List of result objects.</returns> + public IList<T> ExecuteQueryForList<T>(IDalSession session, object parameterObject) + { + return this.ExecuteQueryForList<T>(session, parameterObject, MappedStatement.NO_SKIPPED_RESULTS, MappedStatement.NO_MAXIMUM_RESULTS); + } + #endif + #endregion - - /// <summary> - /// Executes the SQL and retuns all rows selected. This is exactly the same as - /// calling ExecuteQueryForList(session, parameterObject, NO_SKIPPED_RESULTS, NO_MAXIMUM_RESULTS). - /// </summary> - /// <param name="session">The session used to execute the statement.</param> - /// <param name="parameterObject">The object used to set the parameters in the SQL.</param> - /// <returns>A List of result objects.</returns> - public IList ExecuteQueryForList(IDalSession session, object parameterObject) - { - return this.ExecuteQueryForList( session, parameterObject, MappedStatement.NO_SKIPPED_RESULTS, MappedStatement.NO_MAXIMUM_RESULTS); - } + #region ExecuteQueryForObject - /// <summary> + /// <summary> /// Executes an SQL statement that returns a single row as an Object. /// </summary> /// <param name="session">The session used to execute the statement.</param> @@ -256,10 +318,59 @@ } return obj; - } + } + #endregion - - /// <summary> + #region ExecuteQueryForObject .NET 2.0 + #if dotnet2 + /// <summary> + /// Executes an SQL statement that returns a single row as an Object. + /// </summary> + /// <param name="session">The session used to execute the statement.</param> + /// <param name="parameterObject">The object used to set the parameters in the SQL.</param> + /// <returns>The object</returns> + public T ExecuteQueryForObject<T>(IDalSession session, object parameterObject) + { + return this.ExecuteQueryForObject<T>(session, parameterObject, default(T)); + } + + /// <summary> + /// Executes an SQL statement that returns a single row as an Object of the type of + /// the resultObject passed in as a parameter. + /// </summary> + /// <param name="session">The session used to execute the statement.</param> + /// <param name="parameterObject">The object used to set the parameters in the SQL.</param> + /// <param name="resultObject">The result object.</param> + /// <returns>The object</returns> + public T ExecuteQueryForObject<T>(IDalSession session, object parameterObject, T resultObject) + { + T obj = default(T); + RequestScope request = this.Statement.Sql.GetRequestScope(parameterObject, session); ; + + _mappedStatement.PreparedCommand.Create(request, session, this.Statement, parameterObject); + + CacheKey cacheKey = this.GetCacheKey(request); + cacheKey.Update("ExecuteQueryForObject"); + + obj = (T)this.Statement.CacheModel[cacheKey]; + // check if this query has alreay been run + if ((object)obj == CacheModel.NULL_OBJECT) + { + // convert the marker object back into a null value + obj = default(T); + } + else if ((object)obj == null) + { + obj = (T)_mappedStatement.RunQueryForObject(request, session, parameterObject, resultObject); + this.Statement.CacheModel[cacheKey] = obj; + } + + return obj; + } + #endif + #endregion + + /// <summary> /// Runs a query with a custom object that gets a chance /// to deal with each row as it is processed. /// </summary> Modified: ibatis/trunk/cs/mapper/IBatisNet.DataMapper/MappedStatements/IMappedStatement.cs URL: http://svn.apache.org/viewcvs/ibatis/trunk/cs/mapper/IBatisNet.DataMapper/MappedStatements/IMappedStatement.cs?rev=373895&r1=373894&r2=373895&view=diff ============================================================================== --- ibatis/trunk/cs/mapper/IBatisNet.DataMapper/MappedStatements/IMappedStatement.cs (original) +++ ibatis/trunk/cs/mapper/IBatisNet.DataMapper/MappedStatements/IMappedStatement.cs Tue Jan 31 11:59:02 2006 @@ -27,7 +27,9 @@ #region Imports using System; using System.Collections; - +#if dotnet2 +using System.Collections.Generic; +#endif using IBatisNet.Common; using IBatisNet.DataMapper.Commands; using IBatisNet.DataMapper.Configuration.Statements; @@ -135,7 +137,7 @@ #endregion - #region ExecuteQueryForList + #region ExecuteQueryForList /// <summary> /// Executes the SQL and and fill a strongly typed collection. @@ -166,6 +168,37 @@ #endregion + #region ExecuteQueryForList .NET 2.0 + #if dotnet2 + /// <summary> + /// Executes the SQL and and fill a strongly typed collection. + /// </summary> + /// <param name="session">The session used to execute the statement.</param> + /// <param name="parameterObject">The object used to set the parameters in the SQL.</param> + /// <param name="resultObject">A strongly typed collection of result objects.</param> + void ExecuteQueryForList<T>(IDalSession session, object parameterObject, IList<T> resultObject); + + /// <summary> + /// Executes the SQL and retuns a subset of the rows selected. + /// </summary> + /// <param name="session">The session used to execute the statement.</param> + /// <param name="parameterObject">The object used to set the parameters in the SQL.</param> + /// <param name="skipResults">The number of rows to skip over.</param> + /// <param name="maxResults">The maximum number of rows to return.</param> + /// <returns>A List of result objects.</returns> + IList<T> ExecuteQueryForList<T>(IDalSession session, object parameterObject, int skipResults, int maxResults); + + /// <summary> + /// Executes the SQL and retuns all rows selected. This is exactly the same as + /// calling ExecuteQueryForList(session, parameterObject, NO_SKIPPED_RESULTS, NO_MAXIMUM_RESULTS). + /// </summary> + /// <param name="session">The session used to execute the statement.</param> + /// <param name="parameterObject">The object used to set the parameters in the SQL.</param> + /// <returns>A List of result objects.</returns> + IList<T> ExecuteQueryForList<T>(IDalSession session, object parameterObject); + #endif + #endregion + #region ExecuteForObject /// <summary> @@ -187,6 +220,29 @@ object ExecuteQueryForObject( IDalSession session, object parameterObject, object resultObject ); #endregion + + #region ExecuteForObject .NET 2.0 + #if dotnet2 + + /// <summary> + /// Executes an SQL statement that returns a single row as an Object. + /// </summary> + /// <param name="session">The session used to execute the statement.</param> + /// <param name="parameterObject">The object used to set the parameters in the SQL.</param> + /// <returns>The object</returns> + T ExecuteQueryForObject<T>(IDalSession session, object parameterObject); + + /// <summary> + /// Executes an SQL statement that returns a single row as an Object of the type of + /// the resultObject passed in as a parameter. + /// </summary> + /// <param name="session">The session used to execute the statement.</param> + /// <param name="parameterObject">The object used to set the parameters in the SQL.</param> + /// <param name="resultObject">The result object.</param> + /// <returns>The object</returns> + T ExecuteQueryForObject<T>(IDalSession session, object parameterObject, T resultObject); + #endif + #endregion #region Delegate Modified: ibatis/trunk/cs/mapper/IBatisNet.DataMapper/MappedStatements/MappedStatement.cs URL: http://svn.apache.org/viewcvs/ibatis/trunk/cs/mapper/IBatisNet.DataMapper/MappedStatements/MappedStatement.cs?rev=373895&r1=373894&r2=373895&view=diff ============================================================================== --- ibatis/trunk/cs/mapper/IBatisNet.DataMapper/MappedStatements/MappedStatement.cs (original) +++ ibatis/trunk/cs/mapper/IBatisNet.DataMapper/MappedStatements/MappedStatement.cs Tue Jan 31 11:59:02 2006 @@ -28,6 +28,9 @@ using System; using System.Collections; +#if dotnet2 +using System.Collections.Generic; +#endif using System.Data; using System.Reflection; using System.Text; @@ -476,6 +479,82 @@ #endregion + #region ExecuteForObject .NET 2.0 + #if dotnet2 + + /// <summary> + /// Executes an SQL statement that returns a single row as an Object. + /// </summary> + /// <param name="session">The session used to execute the statement.</param> + /// <param name="parameterObject">The object used to set the parameters in the SQL.</param> + /// <returns>The object</returns> + public virtual T ExecuteQueryForObject<T>(IDalSession session, object parameterObject) + { + return ExecuteQueryForObject<T>(session, parameterObject, default(T)); + } + + + /// <summary> + /// Executes an SQL statement that returns a single row as an Object of the type of + /// the resultObject passed in as a parameter. + /// </summary> + /// <param name="session">The session used to execute the statement.</param> + /// <param name="parameterObject">The object used to set the parameters in the SQL.</param> + /// <param name="resultObject">The result object.</param> + /// <returns>The object</returns> + public virtual T ExecuteQueryForObject<T>(IDalSession session, object parameterObject, T resultObject) + { + T obj = default(T); + RequestScope request = _statement.Sql.GetRequestScope(parameterObject, session); ; + + _preparedCommand.Create(request, session, this.Statement, parameterObject); + + obj = (T)RunQueryForObject(request, session, parameterObject, resultObject); + + return obj; + } + + + /// <summary> + /// Executes an SQL statement that returns a single row as an Object of the type of + /// the resultObject passed in as a parameter. + /// </summary> + /// <param name="request">The request scope.</param> + /// <param name="session">The session used to execute the statement.</param> + /// <param name="parameterObject">The object used to set the parameters in the SQL.</param> + /// <param name="resultObject">The result object.</param> + /// <returns>The object</returns> + internal T RunQueryForObject<T>(RequestScope request, IDalSession session, object parameterObject, T resultObject) + { + T result = resultObject; + + using (IDbCommand command = request.IDbCommand) + { + using (IDataReader reader = command.ExecuteReader()) + { + if (reader.Read()) + { + result = (T)ApplyResultMap(request, reader, resultObject); + } + } + + ExecutePostSelect(session, request); + + #region remark + // If you are using the OleDb data provider (as you are), you need to close the + // DataReader before output parameters are visible. + #endregion + + RetrieveOutputParameters(request, session, command, parameterObject); + } + + RaiseExecuteEvent(); + + return result; + } + #endif + #endregion + #region ExecuteQueryForList /// <summary> @@ -662,6 +741,171 @@ #endregion + + #region ExecuteQueryForList .NET 2.0 + #if dotnet2 + + /// <summary> + /// Runs a query with a custom object that gets a chance + /// to deal with each row as it is processed. + /// </summary> + /// <param name="session">The session used to execute the statement.</param> + /// <param name="parameterObject">The object used to set the parameters in the SQL.</param> + /// <param name="rowDelegate"></param> + public virtual IList<T> ExecuteQueryForRowDelegate<T>(IDalSession session, object parameterObject, SqlMapper.RowDelegate rowDelegate) + { + RequestScope request = _statement.Sql.GetRequestScope(parameterObject, session); ; + + _preparedCommand.Create(request, session, this.Statement, parameterObject); + + if (rowDelegate == null) + { + throw new DataMapperException("A null RowDelegate was passed to QueryForRowDelegate."); + } + + return RunQueryForList<T>(request, session, parameterObject, NO_SKIPPED_RESULTS, NO_MAXIMUM_RESULTS, rowDelegate); + } + + + /// <summary> + /// Executes the SQL and retuns all rows selected. This is exactly the same as + /// calling ExecuteQueryForList(session, parameterObject, NO_SKIPPED_RESULTS, NO_MAXIMUM_RESULTS). + /// </summary> + /// <param name="session">The session used to execute the statement.</param> + /// <param name="parameterObject">The object used to set the parameters in the SQL.</param> + /// <returns>A List of result objects.</returns> + public virtual IList<T> ExecuteQueryForList<T>(IDalSession session, object parameterObject) + { + return ExecuteQueryForList<T>(session, parameterObject, NO_SKIPPED_RESULTS, NO_MAXIMUM_RESULTS); + } + + + /// <summary> + /// Executes the SQL and retuns a subset of the rows selected. + /// </summary> + /// <param name="session">The session used to execute the statement.</param> + /// <param name="parameterObject">The object used to set the parameters in the SQL.</param> + /// <param name="skipResults">The number of rows to skip over.</param> + /// <param name="maxResults">The maximum number of rows to return.</param> + /// <returns>A List of result objects.</returns> + public virtual IList<T> ExecuteQueryForList<T>(IDalSession session, object parameterObject, int skipResults, int maxResults) + { + IList<T> list = null; + RequestScope request = _statement.Sql.GetRequestScope(parameterObject, session); ; + + _preparedCommand.Create(request, session, this.Statement, parameterObject); + + list = RunQueryForList<T>(request, session, parameterObject, skipResults, maxResults, null); + + return list; + } + + + /// <summary> + /// Executes the SQL and retuns a List of result objects. + /// </summary> + /// <param name="request">The request scope.</param> + /// <param name="session">The session used to execute the statement.</param> + /// <param name="parameterObject">The object used to set the parameters in the SQL.</param> + /// <param name="skipResults">The number of rows to skip over.</param> + /// <param name="maxResults">The maximum number of rows to return.</param> + /// <param name="rowDelegate"></param> + /// <returns>A List of result objects.</returns> + internal IList<T> RunQueryForList<T>(RequestScope request, IDalSession session, object parameterObject, int skipResults, int maxResults, SqlMapper.RowDelegate rowDelegate) + { + IList<T> list = null; + + using (IDbCommand command = request.IDbCommand) + { + // TODO: Should we ignore this?, I think so in the case of generics. + //if (_statement.ListClass == null) + //{ + // list = new ArrayList(); + //} + //else + //{ + // list = _statement.CreateInstanceOfListClass(); + //} + list = new List<T>(); + + using (IDataReader reader = command.ExecuteReader()) + { + // skip results + for (int i = 0; i < skipResults; i++) + { + if (!reader.Read()) + { + break; + } + } + + int n = 0; + + if (rowDelegate == null) + { + while ((maxResults == NO_MAXIMUM_RESULTS || n < maxResults) + && reader.Read()) + { + T obj = (T)ApplyResultMap(request, reader, null); + + list.Add(obj); + n++; + } + } + else + { + while ((maxResults == NO_MAXIMUM_RESULTS || n < maxResults) + && reader.Read()) + { + T obj = (T)ApplyResultMap(request, reader, null); + + rowDelegate(obj, parameterObject, (IList)list); + n++; + } + } + } + + ExecutePostSelect(session, request); + + RetrieveOutputParameters(request, session, command, parameterObject); + } + + return list; + } + + + /// <summary> + /// Executes the SQL and and fill a strongly typed collection. + /// </summary> + /// <param name="session">The session used to execute the statement.</param> + /// <param name="parameterObject">The object used to set the parameters in the SQL.</param> + /// <param name="resultObject">A strongly typed collection of result objects.</param> + public virtual void ExecuteQueryForList<T>(IDalSession session, object parameterObject, IList<T> resultObject) + { + RequestScope request = _statement.Sql.GetRequestScope(parameterObject, session); ; + + _preparedCommand.Create(request, session, this.Statement, parameterObject); + + using (IDbCommand command = request.IDbCommand) + { + using (IDataReader reader = command.ExecuteReader()) + { + while (reader.Read()) + { + T obj = (T)ApplyResultMap(request, reader, null); + + resultObject.Add(obj); + } + } + + ExecutePostSelect(session, request); + + RetrieveOutputParameters(request, session, command, parameterObject); + } + } + + #endif + #endregion #region ExecuteUpdate, ExecuteInsert Modified: ibatis/trunk/cs/mapper/IBatisNet.DataMapper/SqlMapper.cs URL: http://svn.apache.org/viewcvs/ibatis/trunk/cs/mapper/IBatisNet.DataMapper/SqlMapper.cs?rev=373895&r1=373894&r2=373895&view=diff ============================================================================== --- ibatis/trunk/cs/mapper/IBatisNet.DataMapper/SqlMapper.cs (original) +++ ibatis/trunk/cs/mapper/IBatisNet.DataMapper/SqlMapper.cs Tue Jan 31 11:59:02 2006 @@ -25,7 +25,9 @@ #endregion #region Using - +#if dotnet2 +using System.Collections.Generic; +#endif using System; using System.Collections; using System.Collections.Specialized; @@ -578,7 +580,7 @@ #endregion #region QueryForObject - + /// <summary> /// Executes a Sql SELECT statement that returns that returns data /// to populate a single object instance. @@ -662,12 +664,100 @@ return result; } - - #endregion - #region QueryForMap, QueryForDictionary + #endregion - /// <summary> + #region QueryForObject .NET 2.0 + #if dotnet2 + /// <summary> + /// Executes a Sql SELECT statement that returns that returns data + /// to populate a single object instance. + /// <p/> + /// The parameter object is generally used to supply the input + /// data for the WHERE clause parameter(s) of the SELECT statement. + /// </summary> + /// <param name="statementName">The name of the sql statement to execute.</param> + /// <param name="parameterObject">The object used to set the parameters in the SQL.</param> + /// <returns> The single result object populated with the result set data.</returns> + public T QueryForObject<T>(string statementName, object parameterObject) + { + bool isSessionLocal = false; + IDalSession session = _sessionHolder.LocalSession; + T result; + + if (session == null) + { + session = new SqlMapSession(this.DataSource); + session.OpenConnection(); + isSessionLocal = true; + } + + try + { + IMappedStatement statement = GetMappedStatement(statementName); + result = statement.ExecuteQueryForObject<T>(session, parameterObject); + } + catch + { + throw; + } + finally + { + if (isSessionLocal) + { + session.CloseConnection(); + } + } + + return result; + } + + /// <summary> + /// Executes a Sql SELECT statement that returns a single object of the type of the + /// resultObject parameter. + /// </summary> + /// <param name="statementName">The name of the sql statement to execute.</param> + /// <param name="parameterObject">The object used to set the parameters in the SQL.</param> + /// <param name="instanceObject">An object of the type to be returned.</param> + /// <returns>The single result object populated with the result set data.</returns> + public T QueryForObject<T>(string statementName, object parameterObject, T instanceObject) + { + bool isSessionLocal = false; + IDalSession session = _sessionHolder.LocalSession; + T result = default(T); + + if (session == null) + { + session = new SqlMapSession(this.DataSource); + session.OpenConnection(); + isSessionLocal = true; + } + + try + { + IMappedStatement statement = GetMappedStatement(statementName); + result = statement.ExecuteQueryForObject<T>(session, parameterObject, instanceObject); + } + catch + { + throw; + } + finally + { + if (isSessionLocal) + { + session.CloseConnection(); + } + } + + return result; + } + #endif + #endregion + + #region QueryForMap, QueryForDictionary + + /// <summary> /// Alias to QueryForMap, .NET spirit. /// Feature idea by Ted Husted. /// </summary> @@ -891,6 +981,143 @@ } #endregion + + #region QueryForList .NET 2.0 + #if dotnet2 + /// <summary> + /// Executes a Sql SELECT statement that returns data to populate + /// a number of result objects. + /// <p/> + /// The parameter object is generally used to supply the input + /// data for the WHERE clause parameter(s) of the SELECT statement. + /// </summary> + /// <param name="statementName">The name of the sql statement to execute.</param> + /// <param name="parameterObject">The object used to set the parameters in the SQL.</param> + /// <returns>A List of result objects.</returns> + public IList<T> QueryForList<T>(string statementName, object parameterObject) + { + bool isSessionLocal = false; + IDalSession session = _sessionHolder.LocalSession; + IList<T> list; + + if (session == null) + { + session = new SqlMapSession(this.DataSource); + session.OpenConnection(); + isSessionLocal = true; + } + + try + { + IMappedStatement statement = GetMappedStatement(statementName); + list = (IList<T>)statement.ExecuteQueryForList(session, parameterObject); + } + catch + { + throw; + } + finally + { + if (isSessionLocal) + { + session.CloseConnection(); + } + } + + return list; + } + + /// <summary> + /// Executes the SQL and retuns all rows selected. + /// <p/> + /// The parameter object is generally used to supply the input + /// data for the WHERE clause parameter(s) of the SELECT statement. + /// </summary> + /// <param name="statementName">The name of the sql statement to execute.</param> + /// <param name="parameterObject">The object used to set the parameters in the SQL.</param> + /// <param name="skipResults">The number of rows to skip over.</param> + /// <param name="maxResults">The maximum number of rows to return.</param> + /// <returns>A List of result objects.</returns> + public IList<T> QueryForList<T>(string statementName, object parameterObject, int skipResults, int maxResults) + { + bool isSessionLocal = false; + IDalSession session = _sessionHolder.LocalSession; + IList<T> list; + + if (session == null) + { + session = new SqlMapSession(this.DataSource); + session.OpenConnection(); + isSessionLocal = true; + } + + try + { + IMappedStatement statement = GetMappedStatement(statementName); + list = (IList<T>)statement.ExecuteQueryForList(session, parameterObject, skipResults, maxResults); + } + catch + { + throw; + } + finally + { + if (isSessionLocal) + { + session.CloseConnection(); + } + } + + return list; + } + + + /// <summary> + /// Executes a Sql SELECT statement that returns data to populate + /// a number of result objects. + /// <p/> + /// The parameter object is generally used to supply the input + /// data for the WHERE clause parameter(s) of the SELECT statement. + /// </summary> + /// <param name="statementName">The name of the sql statement to execute.</param> + /// <param name="parameterObject">The object used to set the parameters in the SQL.</param> + /// <param name="resultObject">An Ilist object used to hold the objects.</param> + public void QueryForList<T>(string statementName, object parameterObject, IList<T> resultObject) + { + bool isSessionLocal = false; + IDalSession session = _sessionHolder.LocalSession; + + if (resultObject == null) + { + throw new DataMapperException("resultObject parameter must be instantiated before being passed to SqlMapper.QueryForList"); + } + + if (session == null) + { + session = new SqlMapSession(this.DataSource); + session.OpenConnection(); + isSessionLocal = true; + } + + try + { + IMappedStatement statement = GetMappedStatement(statementName); + statement.ExecuteQueryForList(session, parameterObject, resultObject); + } + catch + { + throw; + } + finally + { + if (isSessionLocal) + { + session.CloseConnection(); + } + } + } + #endif + #endregion #region QueryForPaginatedList /// <summary>
