Full Code of maxtoroq/DbExtensions for AI

v7 07fbefe6fe6c cached
503 files
1.3 MB
298.2k tokens
1361 symbols
1 requests
Download .txt
Showing preview only (1,484K chars total). Download the full file or copy to clipboard to get everything.
Repository: maxtoroq/DbExtensions
Branch: v7
Commit: 07fbefe6fe6c
Files: 503
Total size: 1.3 MB

Directory structure:
gitextract_v6wr0hj4/

├── .gitattributes
├── .github/
│   └── FUNDING.yml
├── .gitignore
├── .gitmodules
├── CHANGES.md
├── DbExtensions.sln
├── LICENSE.txt
├── NOTICE.xml
├── README.md
├── appveyor.yml
├── build/
│   ├── .gitignore
│   ├── DbExtensions.shfbproj
│   ├── build-docs.ps1
│   ├── ensure-nuget.ps1
│   └── release.ps1
├── docs/
│   ├── README.md
│   ├── SqlBuilder.md
│   ├── SqlSet.md
│   └── api/
│       ├── DbExtensions/
│       │   ├── AssociationAttribute/
│       │   │   ├── Name.md
│       │   │   ├── OtherKey.md
│       │   │   ├── README.md
│       │   │   ├── ThisKey.md
│       │   │   └── _ctor.md
│       │   ├── AutoSync/
│       │   │   └── README.md
│       │   ├── ChangeConflictException/
│       │   │   ├── README.md
│       │   │   └── _ctor.md
│       │   ├── ColumnAttribute/
│       │   │   ├── AutoSync.md
│       │   │   ├── ConvertTo.md
│       │   │   ├── IsDbGenerated.md
│       │   │   ├── IsPrimaryKey.md
│       │   │   ├── IsVersion.md
│       │   │   ├── Name.md
│       │   │   ├── README.md
│       │   │   └── _ctor.md
│       │   ├── ComplexPropertyAttribute/
│       │   │   ├── Name.md
│       │   │   ├── README.md
│       │   │   ├── Separator.md
│       │   │   └── _ctor.md
│       │   ├── Database/
│       │   │   ├── Add.md
│       │   │   ├── AddAsync.md
│       │   │   ├── AsyncMap.md
│       │   │   ├── AsyncMap_1.md
│       │   │   ├── AsyncMap__1.md
│       │   │   ├── AsyncMap__1_1.md
│       │   │   ├── Configuration.md
│       │   │   ├── Connection.md
│       │   │   ├── CreateCommand.md
│       │   │   ├── Dispose.md
│       │   │   ├── Dispose_1.md
│       │   │   ├── EnsureConnectionOpen.md
│       │   │   ├── EnsureConnectionOpenAsync.md
│       │   │   ├── EnsureInTransaction.md
│       │   │   ├── EnsureInTransactionAsync.md
│       │   │   ├── EnsureInTransactionAsync_1.md
│       │   │   ├── EnsureInTransaction_1.md
│       │   │   ├── Execute.md
│       │   │   ├── ExecuteAsync.md
│       │   │   ├── FindAsync__1.md
│       │   │   ├── Find__1.md
│       │   │   ├── From.md
│       │   │   ├── FromQuery.md
│       │   │   ├── FromQuery_1.md
│       │   │   ├── FromQuery__1.md
│       │   │   ├── FromQuery__1_1.md
│       │   │   ├── From_1.md
│       │   │   ├── From__1.md
│       │   │   ├── LastInsertId.md
│       │   │   ├── LastInsertIdAsync.md
│       │   │   ├── Map.md
│       │   │   ├── Map_1.md
│       │   │   ├── Map__1.md
│       │   │   ├── Map__1_1.md
│       │   │   ├── QuoteIdentifier.md
│       │   │   ├── README.md
│       │   │   ├── Remove.md
│       │   │   ├── RemoveAsync.md
│       │   │   ├── Table.md
│       │   │   ├── Table__1.md
│       │   │   ├── Transaction.md
│       │   │   ├── Update.md
│       │   │   ├── UpdateAsync.md
│       │   │   ├── UpdateAsync_1.md
│       │   │   ├── Update_1.md
│       │   │   ├── _ctor.md
│       │   │   └── _ctor_1.md
│       │   ├── DatabaseConfiguration/
│       │   │   ├── CommandTimeout.md
│       │   │   ├── DefaultComplexPropertySeparator.md
│       │   │   ├── EnableBatchCommands.md
│       │   │   ├── LastInsertIdCommand.md
│       │   │   ├── Log.md
│       │   │   ├── ParameterNameBuilder.md
│       │   │   ├── ParameterPlaceholderBuilder.md
│       │   │   ├── QuotePrefix.md
│       │   │   ├── QuoteSuffix.md
│       │   │   ├── README.md
│       │   │   └── UseVersionMember.md
│       │   ├── Extensions/
│       │   │   ├── GetBoolean.md
│       │   │   ├── GetByte.md
│       │   │   ├── GetChar.md
│       │   │   ├── GetDateTime.md
│       │   │   ├── GetDecimal.md
│       │   │   ├── GetDouble.md
│       │   │   ├── GetFloat.md
│       │   │   ├── GetInt16.md
│       │   │   ├── GetInt32.md
│       │   │   ├── GetInt64.md
│       │   │   ├── GetNullableBoolean.md
│       │   │   ├── GetNullableBoolean_1.md
│       │   │   ├── GetNullableByte.md
│       │   │   ├── GetNullableByte_1.md
│       │   │   ├── GetNullableChar.md
│       │   │   ├── GetNullableChar_1.md
│       │   │   ├── GetNullableDateTime.md
│       │   │   ├── GetNullableDateTime_1.md
│       │   │   ├── GetNullableDecimal.md
│       │   │   ├── GetNullableDecimal_1.md
│       │   │   ├── GetNullableDouble.md
│       │   │   ├── GetNullableDouble_1.md
│       │   │   ├── GetNullableFloat.md
│       │   │   ├── GetNullableFloat_1.md
│       │   │   ├── GetNullableGuid.md
│       │   │   ├── GetNullableGuid_1.md
│       │   │   ├── GetNullableInt16.md
│       │   │   ├── GetNullableInt16_1.md
│       │   │   ├── GetNullableInt32.md
│       │   │   ├── GetNullableInt32_1.md
│       │   │   ├── GetNullableInt64.md
│       │   │   ├── GetNullableInt64_1.md
│       │   │   ├── GetString.md
│       │   │   ├── GetStringOrNull.md
│       │   │   ├── GetStringOrNull_1.md
│       │   │   ├── GetValue.md
│       │   │   ├── GetValueOrNull.md
│       │   │   ├── GetValueOrNull_1.md
│       │   │   └── README.md
│       │   ├── README.md
│       │   ├── SQL/
│       │   │   ├── DELETE_FROM.md
│       │   │   ├── DELETE_FROM_1.md
│       │   │   ├── INSERT_INTO.md
│       │   │   ├── INSERT_INTO_1.md
│       │   │   ├── README.md
│       │   │   ├── SELECT.md
│       │   │   ├── SELECT_1.md
│       │   │   ├── UPDATE.md
│       │   │   ├── UPDATE_1.md
│       │   │   ├── WITH.md
│       │   │   ├── WITH_1.md
│       │   │   ├── WITH_2.md
│       │   │   └── WITH_3.md
│       │   ├── SqlBuilder/
│       │   │   ├── Append.md
│       │   │   ├── AppendClause.md
│       │   │   ├── AppendClause__1.md
│       │   │   ├── AppendElse.md
│       │   │   ├── AppendElseIf.md
│       │   │   ├── AppendIf.md
│       │   │   ├── AppendLine.md
│       │   │   ├── AppendSql.md
│       │   │   ├── Append_1.md
│       │   │   ├── Buffer.md
│       │   │   ├── CROSS_JOIN.md
│       │   │   ├── CROSS_JOIN_1.md
│       │   │   ├── CROSS_JOIN_2.md
│       │   │   ├── Clone.md
│       │   │   ├── CurrentClause.md
│       │   │   ├── DELETE_FROM.md
│       │   │   ├── DELETE_FROM_1.md
│       │   │   ├── FROM.md
│       │   │   ├── FROM_1.md
│       │   │   ├── FROM_2.md
│       │   │   ├── FROM_3.md
│       │   │   ├── FROM_4.md
│       │   │   ├── GROUP_BY.md
│       │   │   ├── GROUP_BY_1.md
│       │   │   ├── GROUP_BY_2.md
│       │   │   ├── HAVING.md
│       │   │   ├── HAVING_1.md
│       │   │   ├── HAVING_2.md
│       │   │   ├── INNER_JOIN.md
│       │   │   ├── INNER_JOIN_1.md
│       │   │   ├── INNER_JOIN_2.md
│       │   │   ├── INSERT_INTO.md
│       │   │   ├── INSERT_INTO_1.md
│       │   │   ├── InsertText.md
│       │   │   ├── IsEmpty.md
│       │   │   ├── JOIN.md
│       │   │   ├── JOIN_1.md
│       │   │   ├── JOIN_2.md
│       │   │   ├── JoinSql.md
│       │   │   ├── JoinSql_1.md
│       │   │   ├── LEFT_JOIN.md
│       │   │   ├── LEFT_JOIN_1.md
│       │   │   ├── LEFT_JOIN_2.md
│       │   │   ├── LIMIT.md
│       │   │   ├── LIMIT_1.md
│       │   │   ├── LIMIT_2.md
│       │   │   ├── LIMIT_3.md
│       │   │   ├── NextClause.md
│       │   │   ├── OFFSET.md
│       │   │   ├── OFFSET_1.md
│       │   │   ├── OFFSET_2.md
│       │   │   ├── OFFSET_3.md
│       │   │   ├── ORDER_BY.md
│       │   │   ├── ORDER_BY_1.md
│       │   │   ├── ORDER_BY_2.md
│       │   │   ├── ParameterValues.md
│       │   │   ├── README.md
│       │   │   ├── RIGHT_JOIN.md
│       │   │   ├── RIGHT_JOIN_1.md
│       │   │   ├── RIGHT_JOIN_2.md
│       │   │   ├── SELECT.md
│       │   │   ├── SELECT_1.md
│       │   │   ├── SELECT_2.md
│       │   │   ├── SET.md
│       │   │   ├── SET_1.md
│       │   │   ├── SetCurrentClause.md
│       │   │   ├── SetCurrentClause__1.md
│       │   │   ├── SetNextClause.md
│       │   │   ├── SetNextClause__1.md
│       │   │   ├── ToString.md
│       │   │   ├── UNION.md
│       │   │   ├── UPDATE.md
│       │   │   ├── UPDATE_1.md
│       │   │   ├── VALUES.md
│       │   │   ├── VALUES_1.md
│       │   │   ├── WHERE.md
│       │   │   ├── WHERE_1.md
│       │   │   ├── WHERE_2.md
│       │   │   ├── WITH.md
│       │   │   ├── WITH_1.md
│       │   │   ├── WITH_2.md
│       │   │   ├── WITH_3.md
│       │   │   ├── _.md
│       │   │   ├── _Else.md
│       │   │   ├── _ElseIf.md
│       │   │   ├── _If.md
│       │   │   └── __1.md
│       │   ├── SqlClause/
│       │   │   ├── Instance__1.md
│       │   │   ├── Name.md
│       │   │   ├── README.md
│       │   │   ├── Separator.md
│       │   │   └── _ctor.md
│       │   ├── SqlSet/
│       │   │   ├── All.md
│       │   │   ├── AllAsync.md
│       │   │   ├── AllAsync_1.md
│       │   │   ├── All_1.md
│       │   │   ├── Any.md
│       │   │   ├── AnyAsync.md
│       │   │   ├── AnyAsync_1.md
│       │   │   ├── AnyAsync_2.md
│       │   │   ├── Any_1.md
│       │   │   ├── Any_2.md
│       │   │   ├── AsAsyncEnumerable.md
│       │   │   ├── AsEnumerable.md
│       │   │   ├── Cast.md
│       │   │   ├── Cast__1.md
│       │   │   ├── Contains.md
│       │   │   ├── ContainsAsync.md
│       │   │   ├── ContainsKey.md
│       │   │   ├── ContainsKeyAsync.md
│       │   │   ├── Count.md
│       │   │   ├── CountAsync.md
│       │   │   ├── CountAsync_1.md
│       │   │   ├── CountAsync_2.md
│       │   │   ├── Count_1.md
│       │   │   ├── Count_2.md
│       │   │   ├── Database.md
│       │   │   ├── Find.md
│       │   │   ├── FindAsync.md
│       │   │   ├── First.md
│       │   │   ├── FirstAsync.md
│       │   │   ├── FirstAsync_1.md
│       │   │   ├── FirstAsync_2.md
│       │   │   ├── FirstOrDefault.md
│       │   │   ├── FirstOrDefaultAsync.md
│       │   │   ├── FirstOrDefaultAsync_1.md
│       │   │   ├── FirstOrDefaultAsync_2.md
│       │   │   ├── FirstOrDefault_1.md
│       │   │   ├── FirstOrDefault_2.md
│       │   │   ├── First_1.md
│       │   │   ├── First_2.md
│       │   │   ├── GetAsyncEnumerator.md
│       │   │   ├── GetDefiningQuery.md
│       │   │   ├── GetEnumerator.md
│       │   │   ├── Include.md
│       │   │   ├── IncludeMany.md
│       │   │   ├── LongCount.md
│       │   │   ├── LongCountAsync.md
│       │   │   ├── LongCountAsync_1.md
│       │   │   ├── LongCountAsync_2.md
│       │   │   ├── LongCount_1.md
│       │   │   ├── LongCount_2.md
│       │   │   ├── OrderBy.md
│       │   │   ├── OrderBy_1.md
│       │   │   ├── README.md
│       │   │   ├── ResultType.md
│       │   │   ├── Select.md
│       │   │   ├── Select_1.md
│       │   │   ├── Select_2.md
│       │   │   ├── Select_3.md
│       │   │   ├── Select__1.md
│       │   │   ├── Select__1_1.md
│       │   │   ├── Select__1_2.md
│       │   │   ├── Select__1_3.md
│       │   │   ├── Single.md
│       │   │   ├── SingleAsync.md
│       │   │   ├── SingleAsync_1.md
│       │   │   ├── SingleAsync_2.md
│       │   │   ├── SingleOrDefault.md
│       │   │   ├── SingleOrDefaultAsync.md
│       │   │   ├── SingleOrDefaultAsync_1.md
│       │   │   ├── SingleOrDefaultAsync_2.md
│       │   │   ├── SingleOrDefault_1.md
│       │   │   ├── SingleOrDefault_2.md
│       │   │   ├── Single_1.md
│       │   │   ├── Single_2.md
│       │   │   ├── Skip.md
│       │   │   ├── Take.md
│       │   │   ├── ToArray.md
│       │   │   ├── ToArrayAsync.md
│       │   │   ├── ToList.md
│       │   │   ├── ToListAsync.md
│       │   │   ├── ToString.md
│       │   │   ├── Where.md
│       │   │   └── Where_1.md
│       │   ├── SqlSet_1/
│       │   │   ├── AsAsyncEnumerable.md
│       │   │   ├── AsEnumerable.md
│       │   │   ├── Contains.md
│       │   │   ├── ContainsAsync.md
│       │   │   ├── Find.md
│       │   │   ├── FindAsync.md
│       │   │   ├── First.md
│       │   │   ├── FirstAsync.md
│       │   │   ├── FirstAsync_1.md
│       │   │   ├── FirstAsync_2.md
│       │   │   ├── FirstOrDefault.md
│       │   │   ├── FirstOrDefaultAsync.md
│       │   │   ├── FirstOrDefaultAsync_1.md
│       │   │   ├── FirstOrDefaultAsync_2.md
│       │   │   ├── FirstOrDefault_1.md
│       │   │   ├── FirstOrDefault_2.md
│       │   │   ├── First_1.md
│       │   │   ├── First_2.md
│       │   │   ├── GetAsyncEnumerator.md
│       │   │   ├── GetEnumerator.md
│       │   │   ├── Include.md
│       │   │   ├── IncludeMany.md
│       │   │   ├── IncludeMany__1.md
│       │   │   ├── Include_1.md
│       │   │   ├── OrderBy.md
│       │   │   ├── OrderBy_1.md
│       │   │   ├── README.md
│       │   │   ├── Single.md
│       │   │   ├── SingleAsync.md
│       │   │   ├── SingleAsync_1.md
│       │   │   ├── SingleAsync_2.md
│       │   │   ├── SingleOrDefault.md
│       │   │   ├── SingleOrDefaultAsync.md
│       │   │   ├── SingleOrDefaultAsync_1.md
│       │   │   ├── SingleOrDefaultAsync_2.md
│       │   │   ├── SingleOrDefault_1.md
│       │   │   ├── SingleOrDefault_2.md
│       │   │   ├── Single_1.md
│       │   │   ├── Single_2.md
│       │   │   ├── Skip.md
│       │   │   ├── Take.md
│       │   │   ├── ToArray.md
│       │   │   ├── ToArrayAsync.md
│       │   │   ├── ToList.md
│       │   │   ├── ToListAsync.md
│       │   │   ├── Where.md
│       │   │   └── Where_1.md
│       │   ├── SqlTable/
│       │   │   ├── Add.md
│       │   │   ├── AddAsync.md
│       │   │   ├── AddRange.md
│       │   │   ├── AddRangeAsync.md
│       │   │   ├── AddRangeAsync_1.md
│       │   │   ├── AddRange_1.md
│       │   │   ├── Cast__1.md
│       │   │   ├── Name.md
│       │   │   ├── README.md
│       │   │   ├── Refresh.md
│       │   │   ├── RefreshAsync.md
│       │   │   ├── Remove.md
│       │   │   ├── RemoveAsync.md
│       │   │   ├── RemoveKey.md
│       │   │   ├── RemoveKeyAsync.md
│       │   │   ├── RemoveRange.md
│       │   │   ├── RemoveRangeAsync.md
│       │   │   ├── RemoveRangeAsync_1.md
│       │   │   ├── RemoveRange_1.md
│       │   │   ├── Update.md
│       │   │   ├── UpdateAsync.md
│       │   │   ├── UpdateAsync_1.md
│       │   │   ├── UpdateRange.md
│       │   │   ├── UpdateRangeAsync.md
│       │   │   ├── UpdateRangeAsync_1.md
│       │   │   ├── UpdateRange_1.md
│       │   │   └── Update_1.md
│       │   ├── SqlTable_1/
│       │   │   ├── Add.md
│       │   │   ├── AddAsync.md
│       │   │   ├── AddRange.md
│       │   │   ├── AddRangeAsync.md
│       │   │   ├── AddRangeAsync_1.md
│       │   │   ├── AddRange_1.md
│       │   │   ├── Name.md
│       │   │   ├── README.md
│       │   │   ├── Refresh.md
│       │   │   ├── RefreshAsync.md
│       │   │   ├── Remove.md
│       │   │   ├── RemoveAsync.md
│       │   │   ├── RemoveKey.md
│       │   │   ├── RemoveKeyAsync.md
│       │   │   ├── RemoveRange.md
│       │   │   ├── RemoveRangeAsync.md
│       │   │   ├── RemoveRangeAsync_1.md
│       │   │   ├── RemoveRange_1.md
│       │   │   ├── Update.md
│       │   │   ├── UpdateAsync.md
│       │   │   ├── UpdateAsync_1.md
│       │   │   ├── UpdateRange.md
│       │   │   ├── UpdateRangeAsync.md
│       │   │   ├── UpdateRangeAsync_1.md
│       │   │   ├── UpdateRange_1.md
│       │   │   └── Update_1.md
│       │   └── TableAttribute/
│       │       ├── Name.md
│       │       ├── README.md
│       │       └── _ctor.md
│       └── README.md
├── samples/
│   ├── App/
│   │   ├── App.config
│   │   ├── Northwind/
│   │   │   ├── Northwind.mdf
│   │   │   ├── Northwind.sl3
│   │   │   └── Northwind_log.ldf
│   │   ├── Program.cs
│   │   ├── Samples.App.csproj
│   │   └── Utilities/
│   │       ├── ObjectDumper-LICENSE.txt
│   │       └── ObjectDumper.cs
│   └── CSharp/
│       ├── Database.Annotated.cs
│       ├── Database.Poco.cs
│       ├── Northwind/
│       │   ├── Category.cs
│       │   ├── Customer.cs
│       │   ├── CustomerCustomerDemo.cs
│       │   ├── CustomerDemographic.cs
│       │   ├── Employee.cs
│       │   ├── EmployeeTerritory.cs
│       │   ├── NorthwindDatabase.cs
│       │   ├── Order.cs
│       │   ├── OrderDetail.cs
│       │   ├── Product.cs
│       │   ├── Region.cs
│       │   ├── Shipper.cs
│       │   ├── Supplier.cs
│       │   └── Territory.cs
│       ├── Samples.CSharp.csproj
│       ├── SqlBuilder.cs
│       └── SqlSet.cs
├── src/
│   ├── DbExtensions/
│   │   ├── .editorconfig
│   │   ├── Attributes.cs
│   │   ├── Database.cs
│   │   ├── DbExtensions.csproj
│   │   ├── DynamicMapper.cs
│   │   ├── Extensions.cs
│   │   ├── Mapper.cs
│   │   ├── Metadata/
│   │   │   ├── Accessors.cs
│   │   │   ├── AttributedMetaModel.cs
│   │   │   ├── Error.cs
│   │   │   ├── MappingSource.cs
│   │   │   ├── MappingSystem.cs
│   │   │   ├── MetaModel.cs
│   │   │   └── TypeSystem.cs
│   │   ├── PocoMapper.cs
│   │   ├── Properties/
│   │   │   └── AssemblyInfo.cs
│   │   ├── SqlBuilder.cs
│   │   ├── SqlSet.Async.cs
│   │   ├── SqlSet.cs
│   │   ├── SqlTable.Async.cs
│   │   ├── SqlTable.SqlSet.cs
│   │   └── SqlTable.cs
│   ├── DbExtensions-QE/
│   │   ├── DbExtensions-QE.csproj
│   │   └── README.md
│   ├── DbExtensions.SqlBuilder/
│   │   ├── DbExtensions.SqlBuilder.csproj
│   │   └── README.md
│   └── DbExtensions.SqlSet/
│       ├── DbExtensions.SqlSet.csproj
│       └── README.md
└── tests/
    └── DbExtensions.Tests/
        ├── DbExtensions.Tests.csproj
        ├── Mapping/
        │   ├── DynamicMappingBehavior.cs
        │   ├── EnumMappingBehavior.cs
        │   ├── PersistentComplexPropertiesBehavior.cs
        │   ├── PocoMappingBehavior.cs
        │   ├── PocoMappingConstructorBehavior.cs
        │   └── PocoMappingEnumBehavior.cs
        ├── Metadata/
        │   └── AssociationReflection.cs
        ├── Querying/
        │   ├── SqlBuilderBehavior/
        │   │   ├── BasicTests.cs
        │   │   ├── ConditionalAppendTests.cs
        │   │   ├── ConditionalClauseTests.cs
        │   │   ├── ExtensibilityTests.cs
        │   │   └── ValuesClauseTests.cs
        │   ├── SqlSetAnnotatedBehavior/
        │   │   ├── BasicTests.cs
        │   │   └── IncludeTests.cs
        │   ├── SqlSetAsyncBehavior.cs
        │   ├── SqlSetBehavior.cs
        │   ├── SqlSetBehaviorForSqlServer.cs
        │   └── SqlTableBehavior.cs
        └── TestUtil.cs

================================================
FILE CONTENTS
================================================

================================================
FILE: .gitattributes
================================================
# Auto detect text files and perform LF normalization
* text=auto

# Custom for Visual Studio
*.cs     diff=csharp
*.sln    merge=union
*.csproj merge=union
*.vbproj merge=union
*.fsproj merge=union
*.dbproj merge=union

# Standard to msysgit
*.doc	 diff=astextplain
*.DOC	 diff=astextplain
*.docx diff=astextplain
*.DOCX diff=astextplain
*.dot  diff=astextplain
*.DOT  diff=astextplain
*.pdf  diff=astextplain
*.PDF	 diff=astextplain
*.rtf	 diff=astextplain
*.RTF	 diff=astextplain


================================================
FILE: .github/FUNDING.yml
================================================
# These are supported funding model platforms

github: maxtoroq


================================================
FILE: .gitignore
================================================
/.vs/
/.nuget/
/packages/
/docs/api/_toc.xml

[Bb]in
[Oo]bj
[Tt]est[Rr]esults
*.suo
*.user


================================================
FILE: .gitmodules
================================================
[submodule "build/sandcastle-md"]
	path = build/sandcastle-md
	url = https://github.com/maxtoroq/sandcastle-md.git


================================================
FILE: CHANGES.md
================================================
This page has moved [here](https://maxtoroq.github.io/DbExtensions/docs/7/changes.html).

================================================
FILE: DbExtensions.sln
================================================

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.11.35222.181
MinimumVisualStudioVersion = 10.0.40219.1
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DbExtensions", "src\DbExtensions\DbExtensions.csproj", "{0C0CB7A6-FDBA-49A0-8FA9-A35EFFFDE34D}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{0CD55BAA-00D6-4D14-AF01-B2ECC3F8E092}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{CDC6A939-6F5A-4CF5-ABDB-A2F87513A769}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DbExtensions.Tests", "tests\DbExtensions.Tests\DbExtensions.Tests.csproj", "{ABB8412B-D292-4393-BB6D-F0241C41D198}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "samples", "samples", "{A1718337-F793-499A-A4D1-5A6CF5F265DA}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Samples.CSharp", "samples\CSharp\Samples.CSharp.csproj", "{CC01AB1C-A3CD-4E56-9AF0-8E4FD2000CE0}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Samples.App", "samples\App\Samples.App.csproj", "{0ECA5137-1C9A-46BB-B5EB-ED87F0678FB4}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DbExtensions.SqlBuilder", "src\DbExtensions.SqlBuilder\DbExtensions.SqlBuilder.csproj", "{07B53903-2EB1-4E69-98A2-84069197ADB2}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DbExtensions.SqlSet", "src\DbExtensions.SqlSet\DbExtensions.SqlSet.csproj", "{75C3AEF3-213C-494A-97FA-D4DCA76FA94A}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DbExtensions-QE", "src\DbExtensions-QE\DbExtensions-QE.csproj", "{731E7958-87D2-4C2F-9D59-6308D1553F53}"
EndProject
Global
	GlobalSection(SolutionConfigurationPlatforms) = preSolution
		Debug|Any CPU = Debug|Any CPU
		Release|Any CPU = Release|Any CPU
	EndGlobalSection
	GlobalSection(ProjectConfigurationPlatforms) = postSolution
		{0C0CB7A6-FDBA-49A0-8FA9-A35EFFFDE34D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
		{0C0CB7A6-FDBA-49A0-8FA9-A35EFFFDE34D}.Debug|Any CPU.Build.0 = Debug|Any CPU
		{0C0CB7A6-FDBA-49A0-8FA9-A35EFFFDE34D}.Release|Any CPU.ActiveCfg = Release|Any CPU
		{0C0CB7A6-FDBA-49A0-8FA9-A35EFFFDE34D}.Release|Any CPU.Build.0 = Release|Any CPU
		{ABB8412B-D292-4393-BB6D-F0241C41D198}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
		{ABB8412B-D292-4393-BB6D-F0241C41D198}.Debug|Any CPU.Build.0 = Debug|Any CPU
		{ABB8412B-D292-4393-BB6D-F0241C41D198}.Release|Any CPU.ActiveCfg = Release|Any CPU
		{ABB8412B-D292-4393-BB6D-F0241C41D198}.Release|Any CPU.Build.0 = Release|Any CPU
		{CC01AB1C-A3CD-4E56-9AF0-8E4FD2000CE0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
		{CC01AB1C-A3CD-4E56-9AF0-8E4FD2000CE0}.Debug|Any CPU.Build.0 = Debug|Any CPU
		{CC01AB1C-A3CD-4E56-9AF0-8E4FD2000CE0}.Release|Any CPU.ActiveCfg = Release|Any CPU
		{CC01AB1C-A3CD-4E56-9AF0-8E4FD2000CE0}.Release|Any CPU.Build.0 = Release|Any CPU
		{0ECA5137-1C9A-46BB-B5EB-ED87F0678FB4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
		{0ECA5137-1C9A-46BB-B5EB-ED87F0678FB4}.Debug|Any CPU.Build.0 = Debug|Any CPU
		{0ECA5137-1C9A-46BB-B5EB-ED87F0678FB4}.Release|Any CPU.ActiveCfg = Release|Any CPU
		{0ECA5137-1C9A-46BB-B5EB-ED87F0678FB4}.Release|Any CPU.Build.0 = Release|Any CPU
		{07B53903-2EB1-4E69-98A2-84069197ADB2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
		{07B53903-2EB1-4E69-98A2-84069197ADB2}.Debug|Any CPU.Build.0 = Debug|Any CPU
		{07B53903-2EB1-4E69-98A2-84069197ADB2}.Release|Any CPU.ActiveCfg = Release|Any CPU
		{07B53903-2EB1-4E69-98A2-84069197ADB2}.Release|Any CPU.Build.0 = Release|Any CPU
		{75C3AEF3-213C-494A-97FA-D4DCA76FA94A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
		{75C3AEF3-213C-494A-97FA-D4DCA76FA94A}.Debug|Any CPU.Build.0 = Debug|Any CPU
		{75C3AEF3-213C-494A-97FA-D4DCA76FA94A}.Release|Any CPU.ActiveCfg = Release|Any CPU
		{75C3AEF3-213C-494A-97FA-D4DCA76FA94A}.Release|Any CPU.Build.0 = Release|Any CPU
		{731E7958-87D2-4C2F-9D59-6308D1553F53}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
		{731E7958-87D2-4C2F-9D59-6308D1553F53}.Debug|Any CPU.Build.0 = Debug|Any CPU
		{731E7958-87D2-4C2F-9D59-6308D1553F53}.Release|Any CPU.ActiveCfg = Release|Any CPU
		{731E7958-87D2-4C2F-9D59-6308D1553F53}.Release|Any CPU.Build.0 = Release|Any CPU
	EndGlobalSection
	GlobalSection(SolutionProperties) = preSolution
		HideSolutionNode = FALSE
	EndGlobalSection
	GlobalSection(NestedProjects) = preSolution
		{0C0CB7A6-FDBA-49A0-8FA9-A35EFFFDE34D} = {0CD55BAA-00D6-4D14-AF01-B2ECC3F8E092}
		{ABB8412B-D292-4393-BB6D-F0241C41D198} = {CDC6A939-6F5A-4CF5-ABDB-A2F87513A769}
		{CC01AB1C-A3CD-4E56-9AF0-8E4FD2000CE0} = {A1718337-F793-499A-A4D1-5A6CF5F265DA}
		{0ECA5137-1C9A-46BB-B5EB-ED87F0678FB4} = {A1718337-F793-499A-A4D1-5A6CF5F265DA}
		{07B53903-2EB1-4E69-98A2-84069197ADB2} = {0CD55BAA-00D6-4D14-AF01-B2ECC3F8E092}
		{75C3AEF3-213C-494A-97FA-D4DCA76FA94A} = {0CD55BAA-00D6-4D14-AF01-B2ECC3F8E092}
		{731E7958-87D2-4C2F-9D59-6308D1553F53} = {0CD55BAA-00D6-4D14-AF01-B2ECC3F8E092}
	EndGlobalSection
	GlobalSection(ExtensibilityGlobals) = postSolution
		SolutionGuid = {96FE150F-41AE-4AB7-AA87-2B8D278F1FF3}
	EndGlobalSection
EndGlobal


================================================
FILE: LICENSE.txt
================================================

                                 Apache License
                           Version 2.0, January 2004
                        http://www.apache.org/licenses/

   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

   1. Definitions.

      "License" shall mean the terms and conditions for use, reproduction,
      and distribution as defined by Sections 1 through 9 of this document.

      "Licensor" shall mean the copyright owner or entity authorized by
      the copyright owner that is granting the License.

      "Legal Entity" shall mean the union of the acting entity and all
      other entities that control, are controlled by, or are under common
      control with that entity. For the purposes of this definition,
      "control" means (i) the power, direct or indirect, to cause the
      direction or management of such entity, whether by contract or
      otherwise, or (ii) ownership of fifty percent (50%) or more of the
      outstanding shares, or (iii) beneficial ownership of such entity.

      "You" (or "Your") shall mean an individual or Legal Entity
      exercising permissions granted by this License.

      "Source" form shall mean the preferred form for making modifications,
      including but not limited to software source code, documentation
      source, and configuration files.

      "Object" form shall mean any form resulting from mechanical
      transformation or translation of a Source form, including but
      not limited to compiled object code, generated documentation,
      and conversions to other media types.

      "Work" shall mean the work of authorship, whether in Source or
      Object form, made available under the License, as indicated by a
      copyright notice that is included in or attached to the work
      (an example is provided in the Appendix below).

      "Derivative Works" shall mean any work, whether in Source or Object
      form, that is based on (or derived from) the Work and for which the
      editorial revisions, annotations, elaborations, or other modifications
      represent, as a whole, an original work of authorship. For the purposes
      of this License, Derivative Works shall not include works that remain
      separable from, or merely link (or bind by name) to the interfaces of,
      the Work and Derivative Works thereof.

      "Contribution" shall mean any work of authorship, including
      the original version of the Work and any modifications or additions
      to that Work or Derivative Works thereof, that is intentionally
      submitted to Licensor for inclusion in the Work by the copyright owner
      or by an individual or Legal Entity authorized to submit on behalf of
      the copyright owner. For the purposes of this definition, "submitted"
      means any form of electronic, verbal, or written communication sent
      to the Licensor or its representatives, including but not limited to
      communication on electronic mailing lists, source code control systems,
      and issue tracking systems that are managed by, or on behalf of, the
      Licensor for the purpose of discussing and improving the Work, but
      excluding communication that is conspicuously marked or otherwise
      designated in writing by the copyright owner as "Not a Contribution."

      "Contributor" shall mean Licensor and any individual or Legal Entity
      on behalf of whom a Contribution has been received by Licensor and
      subsequently incorporated within the Work.

   2. Grant of Copyright License. Subject to the terms and conditions of
      this License, each Contributor hereby grants to You a perpetual,
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
      copyright license to reproduce, prepare Derivative Works of,
      publicly display, publicly perform, sublicense, and distribute the
      Work and such Derivative Works in Source or Object form.

   3. Grant of Patent License. Subject to the terms and conditions of
      this License, each Contributor hereby grants to You a perpetual,
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
      (except as stated in this section) patent license to make, have made,
      use, offer to sell, sell, import, and otherwise transfer the Work,
      where such license applies only to those patent claims licensable
      by such Contributor that are necessarily infringed by their
      Contribution(s) alone or by combination of their Contribution(s)
      with the Work to which such Contribution(s) was submitted. If You
      institute patent litigation against any entity (including a
      cross-claim or counterclaim in a lawsuit) alleging that the Work
      or a Contribution incorporated within the Work constitutes direct
      or contributory patent infringement, then any patent licenses
      granted to You under this License for that Work shall terminate
      as of the date such litigation is filed.

   4. Redistribution. You may reproduce and distribute copies of the
      Work or Derivative Works thereof in any medium, with or without
      modifications, and in Source or Object form, provided that You
      meet the following conditions:

      (a) You must give any other recipients of the Work or
          Derivative Works a copy of this License; and

      (b) You must cause any modified files to carry prominent notices
          stating that You changed the files; and

      (c) You must retain, in the Source form of any Derivative Works
          that You distribute, all copyright, patent, trademark, and
          attribution notices from the Source form of the Work,
          excluding those notices that do not pertain to any part of
          the Derivative Works; and

      (d) If the Work includes a "NOTICE" text file as part of its
          distribution, then any Derivative Works that You distribute must
          include a readable copy of the attribution notices contained
          within such NOTICE file, excluding those notices that do not
          pertain to any part of the Derivative Works, in at least one
          of the following places: within a NOTICE text file distributed
          as part of the Derivative Works; within the Source form or
          documentation, if provided along with the Derivative Works; or,
          within a display generated by the Derivative Works, if and
          wherever such third-party notices normally appear. The contents
          of the NOTICE file are for informational purposes only and
          do not modify the License. You may add Your own attribution
          notices within Derivative Works that You distribute, alongside
          or as an addendum to the NOTICE text from the Work, provided
          that such additional attribution notices cannot be construed
          as modifying the License.

      You may add Your own copyright statement to Your modifications and
      may provide additional or different license terms and conditions
      for use, reproduction, or distribution of Your modifications, or
      for any such Derivative Works as a whole, provided Your use,
      reproduction, and distribution of the Work otherwise complies with
      the conditions stated in this License.

   5. Submission of Contributions. Unless You explicitly state otherwise,
      any Contribution intentionally submitted for inclusion in the Work
      by You to the Licensor shall be under the terms and conditions of
      this License, without any additional terms or conditions.
      Notwithstanding the above, nothing herein shall supersede or modify
      the terms of any separate license agreement you may have executed
      with Licensor regarding such Contributions.

   6. Trademarks. This License does not grant permission to use the trade
      names, trademarks, service marks, or product names of the Licensor,
      except as required for reasonable and customary use in describing the
      origin of the Work and reproducing the content of the NOTICE file.

   7. Disclaimer of Warranty. Unless required by applicable law or
      agreed to in writing, Licensor provides the Work (and each
      Contributor provides its Contributions) on an "AS IS" BASIS,
      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
      implied, including, without limitation, any warranties or conditions
      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
      PARTICULAR PURPOSE. You are solely responsible for determining the
      appropriateness of using or redistributing the Work and assume any
      risks associated with Your exercise of permissions under this License.

   8. Limitation of Liability. In no event and under no legal theory,
      whether in tort (including negligence), contract, or otherwise,
      unless required by applicable law (such as deliberate and grossly
      negligent acts) or agreed to in writing, shall any Contributor be
      liable to You for damages, including any direct, indirect, special,
      incidental, or consequential damages of any character arising as a
      result of this License or out of the use or inability to use the
      Work (including but not limited to damages for loss of goodwill,
      work stoppage, computer failure or malfunction, or any and all
      other commercial damages or losses), even if such Contributor
      has been advised of the possibility of such damages.

   9. Accepting Warranty or Additional Liability. While redistributing
      the Work or Derivative Works thereof, You may choose to offer,
      and charge a fee for, acceptance of support, warranty, indemnity,
      or other liability obligations and/or rights consistent with this
      License. However, in accepting such obligations, You may act only
      on Your own behalf and on Your sole responsibility, not on behalf
      of any other Contributor, and only if You agree to indemnify,
      defend, and hold each Contributor harmless for any liability
      incurred by, or claims asserted against, such Contributor by reason
      of your accepting any such warranty or additional liability.

   END OF TERMS AND CONDITIONS

   APPENDIX: How to apply the Apache License to your work.

      To apply the Apache License to your work, attach the following
      boilerplate notice, with the fields enclosed by brackets "[]"
      replaced with your own identifying information. (Don't include
      the brackets!)  The text should be enclosed in the appropriate
      comment syntax for the file format. We also recommend that a
      file or class name and description of purpose be included on the
      same "printed page" as the copyright notice for easier
      identification within third-party archives.

   Copyright [yyyy] [name of copyright owner]

   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.

================================================
FILE: NOTICE.xml
================================================
<?xml version="1.0" encoding="utf-8"?>
<!--
=========================================================================
==  NOTICE file corresponding to the section 4 d of                    ==
==  the Apache License, Version 2.0,                                   ==
==  in this case for the DbExtensions distribution.                    ==
=========================================================================
-->
<notice>
   <work>DbExtensions</work>
   <website>https://maxtoroq.github.io/DbExtensions/</website>
   <copyright>2009-2025 Max Toro Q.</copyright>
   <authors>Max Toro Q.</authors>
   <license name="Apache-2.0" src="LICENSE.txt"/>
   <foreign-work type="source">
      <notice>
         <work>.NET Framework</work>
         <website>https://github.com/Microsoft/referencesource</website>
         <copyright>Microsoft Corporation</copyright>
         <license name="MIT"><![CDATA[The MIT License (MIT)

Copyright (c) Microsoft Corporation

Permission is hereby granted, free of charge, to any person obtaining a copy 
of this software and associated documentation files (the "Software"), to deal 
in the Software without restriction, including without limitation the rights 
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 
copies of the Software, and to permit persons to whom the Software is 
furnished to do so, subject to the following conditions: 

The above copyright notice and this permission notice shall be included in all 
copies or substantial portions of the Software. 

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 
SOFTWARE.]]></license>
      </notice>
      <used-by-source path="src/DbExtensions/"/>
   </foreign-work>
</notice>


================================================
FILE: README.md
================================================
[DbExtensions][1] — The SQL framework for .NET
==============================================
DbExtensions is a data-access framework with a strong focus on **query composition, granularity and code aesthetics**. It supports both POCO and dynamic (untyped) mapping.

See the [project home][1] and the [documentation][2] for more information.

[![Build status](https://ci.appveyor.com/api/projects/status/qw9hoyur7yvlpi8y/branch/v7?svg=true)](https://ci.appveyor.com/project/maxtoroq/dbextensions/branch/v7)
![Tests](https://img.shields.io/appveyor/tests/maxtoroq/DbExtensions/v7)

[1]: https://maxtoroq.github.io/DbExtensions/
[2]: https://maxtoroq.github.io/DbExtensions/docs/7/


================================================
FILE: appveyor.yml
================================================
image: Visual Studio 2022

before_build:
  - cmd: MSBuild -t:restore

version: '{build}'

build:
  verbosity: minimal


================================================
FILE: build/.gitignore
================================================
/api-docs/
/EWSoftware.SHFB/
/EWSoftware.SHFB.*/
/nupkg/


================================================
FILE: build/DbExtensions.shfbproj
================================================
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
  <PropertyGroup>
    <SHFBROOT Condition=" '$(SHFBROOT)' == '' ">$(MSBuildThisFileDirectory)\EWSoftware.SHFB\tools\</SHFBROOT>
    <!-- The configuration and platform will be used to determine which
         assemblies to include from solution and project documentation
         sources -->
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
    <SchemaVersion>2.0</SchemaVersion>
    <ProjectGuid>{e4c3bd2c-c9c8-4484-bc16-0d4a5f6dfcd3}</ProjectGuid>
    <SHFBSchemaVersion>2017.9.26.0</SHFBSchemaVersion>
    <!-- AssemblyName, Name, and RootNamespace are not used by SHFB but Visual
         Studio adds them anyway -->
    <AssemblyName>Documentation</AssemblyName>
    <RootNamespace>Documentation</RootNamespace>
    <Name>Documentation</Name>
    <!-- SHFB properties -->
    <OutputPath>api-docs\html\</OutputPath>
    <HtmlHelpName>Documentation</HtmlHelpName>
    <Language>en-US</Language>
    <HelpFileFormat>Website</HelpFileFormat>
    <KeepLogFile>False</KeepLogFile>
    <HelpTitle>DbExtensions</HelpTitle>
    <NamingMethod>MemberName</NamingMethod>
    <SdkLinkTarget>Top</SdkLinkTarget>
    <SyntaxFilters>C#</SyntaxFilters>
    <BinaryTOC>False</BinaryTOC>
    <ProjectName>DbExtensions</ProjectName>
    <DocumentationSources>
      <DocumentationSource sourceFile="..\src\$(ProjectName)\$(ProjectName).csproj" />
    </DocumentationSources>
    <NamespaceSummaries>
      <NamespaceSummaryItem name="DbExtensions" isDocumented="True">DbExtensions is a data-access framework with a strong focus on query composition, granularity and code aesthetics. &lt;see cref="T:DbExtensions.Database"/&gt; is the entry point of the &lt;see cref="N:DbExtensions"/&gt; API.</NamespaceSummaryItem>
    </NamespaceSummaries>
    <RootNamespaceContainer>True</RootNamespaceContainer>
    <PresentationStyle>VS2013</PresentationStyle>
    <Preliminary>False</Preliminary>
    <ContentPlacement>AboveNamespaces</ContentPlacement>
    <BuildAssemblerVerbosity>OnlyWarningsAndErrors</BuildAssemblerVerbosity>
    <IndentHtml>False</IndentHtml>
    <FrameworkVersion>.NET Core/.NET Standard/.NET 5.0+</FrameworkVersion>
    <DisableCodeBlockComponent>False</DisableCodeBlockComponent>
    <CppCommentsFixup>False</CppCommentsFixup>
    <CleanIntermediates>False</CleanIntermediates>
    <MissingTags>AutoDocumentCtors, AutoDocumentDispose</MissingTags>
    <MaximumGroupParts>2</MaximumGroupParts>
    <NamespaceGrouping>False</NamespaceGrouping>
    <RootNamespaceTitle>DbExtensions Namespaces</RootNamespaceTitle>
    <VisibleItems>InheritedMembers, Protected, SealedProtected, NonBrowsable</VisibleItems>
    <ComponentConfigurations>
      <ComponentConfig id="IntelliSense Component" enabled="True" xmlns="">
        <component id="IntelliSense Component">
          <!-- Output options (optional)
  Attributes:
    Include namespaces (false by default)
    Namespaces comments filename ("Namespaces" if not specified or empty)
    Output folder (current folder if not specified or empty) -->
          <output includeNamespaces="false" namespacesFile="Namespaces" folder="{@OutputFolder}\..\xml\{@ProjectName}\" />
        </component>
      </ComponentConfig>
    </ComponentConfigurations>
  </PropertyGroup>
  <!-- There are no properties for these groups.  AnyCPU needs to appear in
       order for Visual Studio to perform the build.  The others are optional
       common platform types that may appear. -->
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x64' ">
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x64' ">
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|Win32' ">
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|Win32' ">
  </PropertyGroup>
  <!-- Import the SHFB build targets -->
  <Import Project="$(SHFBROOT)\SandcastleHelpFileBuilder.targets" />
</Project>

================================================
FILE: build/build-docs.ps1
================================================
param([string]$ProjectName = "DbExtensions", [switch]$NoBuildProj, [switch]$XmlOnly)

$ErrorActionPreference = "Stop"
Push-Location (Split-Path $script:MyInvocation.MyCommand.Path)

try {

   $nuget = .\ensure-nuget.ps1

   if (-not (Test-Path EWSoftware.SHFB -PathType Container)) {
      &$nuget install EWSoftware.SHFB -Version 2025.3.22 -ExcludeVersion
   }

   if (-not (Test-Path EWSoftware.SHFB.NET -PathType Container)) {
      &$nuget install EWSoftware.SHFB.NET -Version 5.0.0.2 -ExcludeVersion
   }

   if (-not $NoBuildProj) {
      MSBuild ..\src\$ProjectName\$ProjectName.csproj /v:minimal /p:Configuration=Release
   }

   MSBuild DbExtensions.shfbproj /v:minimal /p:ProjectName=$ProjectName

   if (-not $XmlOnly) {

      .\sandcastle-md\packages\restore.ps1
      MSBuild sandcastle-md\sandcastle-md.sln /v:minimal

      if (Test-Path ..\docs\api -PathType Container) {
         rm ..\docs\api -Recurse
      }

      sandcastle-md\src\sandcastle-md\bin\Debug\sandcastle-md.exe api-docs\html ..\docs\api `
        --remove-assembly-name `
        --remove-assembly-version `
        --exclude-icons
   }

} finally {
   Pop-Location
}


================================================
FILE: build/ensure-nuget.ps1
================================================
$ErrorActionPreference = "Stop"
Push-Location (Split-Path $script:MyInvocation.MyCommand.Path)

$nuget = "..\.nuget\nuget.exe"

try {

   $nugetDir = Split-Path $nuget

   if (-not (Test-Path $nugetDir -PathType Container)) {
      md $nugetDir | Out-Null
   }

   if (-not (Test-Path $nuget -PathType Leaf)) {
      Write-Host "Downloading NuGet..."
      Invoke-WebRequest https://dist.nuget.org/win-x86-commandline/latest/nuget.exe -OutFile $nuget
   }

   Resolve-Path $nuget

} finally {
   Pop-Location
}


================================================
FILE: build/release.ps1
================================================
param(
   [Parameter(Mandatory=$true)][Version]$AssemblyVersion,
   [Parameter(Mandatory=$true)][Version]$PackageVersion,
   [Parameter()][string]$PreRelease
)

$ErrorActionPreference = "Stop"
Push-Location (Split-Path $script:MyInvocation.MyCommand.Path)

$solutionPath = Resolve-Path ..
$configuration = "Release"

function ProjectPath([string]$projName) {
   Resolve-Path $solutionPath\src\$projName
}

function ProjectFile([string]$projName) {
   $projPath = ProjectPath $projName
   return "$projPath\$projName.csproj"
}

function BuildProj([string]$projName, [string]$target) {

   $pack = $target -eq "Pack"

   MSBuild $(ProjectFile($projName)) /t:$target /v:minimal `
      /p:NoBuild=$pack `
      /p:Configuration=$configuration `
      /p:PackageOutputPath=$outputPath `
      /p:AssemblyVersion=$AssemblyVersion `
      /p:FileVersion=$PackageVersion `
      /p:VersionPrefix=$PackageVersion `
      /p:VersionSuffix=$PreRelease `
      /p:ContinuousIntegrationBuild=true `
      /p:GenerateDocumentationFile=$(-not $pack) `
      /p:Authors=$($notice.authors) `
      /p:Product=$($notice.work) `
      /p:Copyright=$($notice.copyright) `
      /p:Company=$($notice.website) `
      /p:PackageLicenseExpression=$($notice.license.name) `
      /p:PackageProjectUrl=$($notice.website) `
      /p:PackageReleaseNotes="For a list of changes see $($notice.website)docs/7/changes.html" `
      /p:RepositoryBranch=$(git branch --show-current)
}

function NuPack([string]$projName) {

   BuildProj $projName "Build" | Out-Host

   .\build-docs.ps1 -ProjectName $projName -NoBuildProj -XmlOnly | Out-Host

   BuildProj $projName "Pack" | Out-Host

   return Join-Path $outputPath "$projName.$pkgVer.nupkg"
}

function Prompt-Choices($Choices=("&Yes", "&No"), [string]$Title="Confirm", [string]$Message="Are you sure?", [int]$Default=0) {

   $choicesArr = [Management.Automation.Host.ChoiceDescription[]] `
      ($Choices | % {New-Object Management.Automation.Host.ChoiceDescription $_})

   return $host.ui.PromptForChoice($Title, $Message, $choicesArr, $Default)
}

try {

   [xml]$noticeDoc = Get-Content $solutionPath\NOTICE.xml
   $notice = $noticeDoc.DocumentElement

   if (-not (Test-Path nupkg -PathType Container)) {
      md nupkg | Out-Null
   }

   $outputPath = Resolve-Path nupkg

   $pkgVer = $PackageVersion.ToString(3)

   if ($PreRelease) {
      $pkgVer = $pkgVer + "-" + $PreRelease
   }

   $newTag = "v$pkgVer"

   MSBuild $solutionPath\DbExtensions.sln -t:Restore

   $newPackages = (NuPack DbExtensions), (NuPack DbExtensions-QE)

   if ((Prompt-Choices -Message "Create tag $newTag ?" -Default 1) -eq 0) {

      git tag -a $newTag -m $newTag
      Write-Warning "Created tag: $newTag"

      if ((Prompt-Choices -Message "Push package(s) to gallery?" -Default 1) -eq 0) {
         foreach ($pkgPath in $newPackages) {
            dotnet nuget push $pkgPath --source nuget.org
         }
      }

      if ((Prompt-Choices -Message "Push new tag $newTag to origin?" -Default 1) -eq 0) {
         git push origin $newTag
      }
   }

} finally {
   Pop-Location
}


================================================
FILE: docs/README.md
================================================
Documentation has moved [here](https://maxtoroq.github.io/DbExtensions/docs/7/).

================================================
FILE: docs/SqlBuilder.md
================================================
This page has moved [here](https://maxtoroq.github.io/DbExtensions/docs/7/SqlBuilder.html).

================================================
FILE: docs/SqlSet.md
================================================
This page has moved [here](https://maxtoroq.github.io/DbExtensions/docs/7/SqlSet.html).

================================================
FILE: docs/api/DbExtensions/AssociationAttribute/Name.md
================================================
AssociationAttribute.Name Property
==================================
Gets or sets the name of a constraint.
  
**Namespace:** [DbExtensions][1]  
**Assembly:** DbExtensions.dll

Syntax
------

```csharp
public string? Name { get; set; }
```

#### Property Value
[String][2]

See Also
--------

#### Reference
[AssociationAttribute Class][3]  
[DbExtensions Namespace][1]  

[1]: ../README.md
[2]: https://learn.microsoft.com/dotnet/api/system.string
[3]: README.md

================================================
FILE: docs/api/DbExtensions/AssociationAttribute/OtherKey.md
================================================
AssociationAttribute.OtherKey Property
======================================
Gets or sets one or more members of the target entity class as key values on the other side of the association.
  
**Namespace:** [DbExtensions][1]  
**Assembly:** DbExtensions.dll

Syntax
------

```csharp
public string? OtherKey { get; set; }
```

#### Property Value
[String][2]

See Also
--------

#### Reference
[AssociationAttribute Class][3]  
[DbExtensions Namespace][1]  

[1]: ../README.md
[2]: https://learn.microsoft.com/dotnet/api/system.string
[3]: README.md

================================================
FILE: docs/api/DbExtensions/AssociationAttribute/README.md
================================================
AssociationAttribute Class
==========================
Designates a property to represent a database association, such as a foreign key relationship.


Inheritance Hierarchy
---------------------
[System.Object][1]  
  [System.Attribute][2]  
    **DbExtensions.AssociationAttribute**  
  
**Namespace:** [DbExtensions][3]  
**Assembly:** DbExtensions.dll

Syntax
------

```csharp
public sealed class AssociationAttribute : Attribute
```

The **AssociationAttribute** type exposes the following members.


Constructors
------------

| Name                      | Description                                                      |
| ------------------------- | ---------------------------------------------------------------- |
| [AssociationAttribute][4] | Initializes a new instance of the **AssociationAttribute** class |


Properties
----------

| Name          | Description                                                                                                     |
| ------------- | --------------------------------------------------------------------------------------------------------------- |
| [Name][5]     | Gets or sets the name of a constraint.                                                                          |
| [OtherKey][6] | Gets or sets one or more members of the target entity class as key values on the other side of the association. |
| [ThisKey][7]  | Gets or sets members of this entity class to represent the key values on this side of the association.          |


See Also
--------

#### Reference
[DbExtensions Namespace][3]  

[1]: https://learn.microsoft.com/dotnet/api/system.object
[2]: https://learn.microsoft.com/dotnet/api/system.attribute
[3]: ../README.md
[4]: _ctor.md
[5]: Name.md
[6]: OtherKey.md
[7]: ThisKey.md

================================================
FILE: docs/api/DbExtensions/AssociationAttribute/ThisKey.md
================================================
AssociationAttribute.ThisKey Property
=====================================
Gets or sets members of this entity class to represent the key values on this side of the association.
  
**Namespace:** [DbExtensions][1]  
**Assembly:** DbExtensions.dll

Syntax
------

```csharp
public string? ThisKey { get; set; }
```

#### Property Value
[String][2]

See Also
--------

#### Reference
[AssociationAttribute Class][3]  
[DbExtensions Namespace][1]  

[1]: ../README.md
[2]: https://learn.microsoft.com/dotnet/api/system.string
[3]: README.md

================================================
FILE: docs/api/DbExtensions/AssociationAttribute/_ctor.md
================================================
AssociationAttribute Constructor
================================
Initializes a new instance of the [AssociationAttribute][1] class
  
**Namespace:** [DbExtensions][2]  
**Assembly:** DbExtensions.dll

Syntax
------

```csharp
public AssociationAttribute()
```


See Also
--------

#### Reference
[AssociationAttribute Class][1]  
[DbExtensions Namespace][2]  

[1]: README.md
[2]: ../README.md

================================================
FILE: docs/api/DbExtensions/AutoSync/README.md
================================================
AutoSync Enumeration
====================
Used to specify for during INSERT and UPDATE operations when a data member should be read back after the operation completes.
  
**Namespace:** [DbExtensions][1]  
**Assembly:** DbExtensions.dll

Syntax
------

```csharp
public enum AutoSync
```


Members
-------

| Member name | Value | Description                                       |
| ----------- | ----- | ------------------------------------------------- |
| Default     | 0     | Automatically selects the value.                  |
| Always      | 1     | Always returns the value.                         |
| Never       | 2     | Never returns the value.                          |
| OnInsert    | 3     | Returns the value only after an INSERT operation. |
| OnUpdate    | 4     | Returns the value only after an UPDATE operation. |


See Also
--------

#### Reference
[DbExtensions Namespace][1]  

[1]: ../README.md

================================================
FILE: docs/api/DbExtensions/ChangeConflictException/README.md
================================================
ChangeConflictException Class
=============================
An exception that is thrown when a concurrency violation is encountered while saving to the database. A concurrency violation occurs when an unexpected number of rows are affected during save. This is usually because the data in the database has been modified since it was loaded into memory.


Inheritance Hierarchy
---------------------
[System.Object][1]  
  [System.Exception][2]  
    **DbExtensions.ChangeConflictException**  
  
**Namespace:** [DbExtensions][3]  
**Assembly:** DbExtensions.dll

Syntax
------

```csharp
public sealed class ChangeConflictException : Exception
```

The **ChangeConflictException** type exposes the following members.


Constructors
------------

| Name                         | Description                                                                                         |
| ---------------------------- | --------------------------------------------------------------------------------------------------- |
| [ChangeConflictException][4] | Initializes a new instance of the **ChangeConflictException** class with a specified error message. |


See Also
--------

#### Reference
[DbExtensions Namespace][3]  

[1]: https://learn.microsoft.com/dotnet/api/system.object
[2]: https://learn.microsoft.com/dotnet/api/system.exception
[3]: ../README.md
[4]: _ctor.md

================================================
FILE: docs/api/DbExtensions/ChangeConflictException/_ctor.md
================================================
ChangeConflictException Constructor
===================================
Initializes a new instance of the [ChangeConflictException][1] class with a specified error message.
  
**Namespace:** [DbExtensions][2]  
**Assembly:** DbExtensions.dll

Syntax
------

```csharp
public ChangeConflictException(
	string message
)
```

#### Parameters

##### *message*  [String][3]
The message that describes the error.


See Also
--------

#### Reference
[ChangeConflictException Class][1]  
[DbExtensions Namespace][2]  

[1]: README.md
[2]: ../README.md
[3]: https://learn.microsoft.com/dotnet/api/system.string

================================================
FILE: docs/api/DbExtensions/ColumnAttribute/AutoSync.md
================================================
ColumnAttribute.AutoSync Property
=================================
Gets or sets the [AutoSync][1] enumeration.
  
**Namespace:** [DbExtensions][2]  
**Assembly:** DbExtensions.dll

Syntax
------

```csharp
public AutoSync AutoSync { get; set; }
```

#### Property Value
[AutoSync][1]

See Also
--------

#### Reference
[ColumnAttribute Class][3]  
[DbExtensions Namespace][2]  

[1]: ../AutoSync/README.md
[2]: ../README.md
[3]: README.md

================================================
FILE: docs/api/DbExtensions/ColumnAttribute/ConvertTo.md
================================================
ColumnAttribute.ConvertTo Property
==================================
Gets or sets the type to convert this member to before sending to the database.
  
**Namespace:** [DbExtensions][1]  
**Assembly:** DbExtensions.dll

Syntax
------

```csharp
public Type? ConvertTo { get; set; }
```

#### Property Value
[Type][2]

See Also
--------

#### Reference
[ColumnAttribute Class][3]  
[DbExtensions Namespace][1]  

[1]: ../README.md
[2]: https://learn.microsoft.com/dotnet/api/system.type
[3]: README.md

================================================
FILE: docs/api/DbExtensions/ColumnAttribute/IsDbGenerated.md
================================================
ColumnAttribute.IsDbGenerated Property
======================================
Gets or sets whether a column contains values that the database auto-generates.
  
**Namespace:** [DbExtensions][1]  
**Assembly:** DbExtensions.dll

Syntax
------

```csharp
public bool IsDbGenerated { get; set; }
```

#### Property Value
[Boolean][2]

See Also
--------

#### Reference
[ColumnAttribute Class][3]  
[DbExtensions Namespace][1]  

[1]: ../README.md
[2]: https://learn.microsoft.com/dotnet/api/system.boolean
[3]: README.md

================================================
FILE: docs/api/DbExtensions/ColumnAttribute/IsPrimaryKey.md
================================================
ColumnAttribute.IsPrimaryKey Property
=====================================
Gets or sets whether this class member represents a column that is part or all of the primary key of the table.
  
**Namespace:** [DbExtensions][1]  
**Assembly:** DbExtensions.dll

Syntax
------

```csharp
public bool IsPrimaryKey { get; set; }
```

#### Property Value
[Boolean][2]

See Also
--------

#### Reference
[ColumnAttribute Class][3]  
[DbExtensions Namespace][1]  

[1]: ../README.md
[2]: https://learn.microsoft.com/dotnet/api/system.boolean
[3]: README.md

================================================
FILE: docs/api/DbExtensions/ColumnAttribute/IsVersion.md
================================================
ColumnAttribute.IsVersion Property
==================================
Gets or sets whether the column type of the member is a database timestamp or version number.
  
**Namespace:** [DbExtensions][1]  
**Assembly:** DbExtensions.dll

Syntax
------

```csharp
public bool IsVersion { get; set; }
```

#### Property Value
[Boolean][2]

See Also
--------

#### Reference
[ColumnAttribute Class][3]  
[DbExtensions Namespace][1]  

[1]: ../README.md
[2]: https://learn.microsoft.com/dotnet/api/system.boolean
[3]: README.md

================================================
FILE: docs/api/DbExtensions/ColumnAttribute/Name.md
================================================
ColumnAttribute.Name Property
=============================
Gets or sets the name of a column.
  
**Namespace:** [DbExtensions][1]  
**Assembly:** DbExtensions.dll

Syntax
------

```csharp
public string? Name { get; set; }
```

#### Property Value
[String][2]

See Also
--------

#### Reference
[ColumnAttribute Class][3]  
[DbExtensions Namespace][1]  

[1]: ../README.md
[2]: https://learn.microsoft.com/dotnet/api/system.string
[3]: README.md

================================================
FILE: docs/api/DbExtensions/ColumnAttribute/README.md
================================================
ColumnAttribute Class
=====================
Associates a property with a column in a database table.


Inheritance Hierarchy
---------------------
[System.Object][1]  
  [System.Attribute][2]  
    **DbExtensions.ColumnAttribute**  
  
**Namespace:** [DbExtensions][3]  
**Assembly:** DbExtensions.dll

Syntax
------

```csharp
public sealed class ColumnAttribute : Attribute
```

The **ColumnAttribute** type exposes the following members.


Constructors
------------

| Name                 | Description                                                 |
| -------------------- | ----------------------------------------------------------- |
| [ColumnAttribute][4] | Initializes a new instance of the **ColumnAttribute** class |


Properties
----------

| Name               | Description                                                                                                     |
| ------------------ | --------------------------------------------------------------------------------------------------------------- |
| [AutoSync][5]      | Gets or sets the [AutoSync][6] enumeration.                                                                     |
| [ConvertTo][7]     | Gets or sets the type to convert this member to before sending to the database.                                 |
| [IsDbGenerated][8] | Gets or sets whether a column contains values that the database auto-generates.                                 |
| [IsPrimaryKey][9]  | Gets or sets whether this class member represents a column that is part or all of the primary key of the table. |
| [IsVersion][10]    | Gets or sets whether the column type of the member is a database timestamp or version number.                   |
| [Name][11]         | Gets or sets the name of a column.                                                                              |


See Also
--------

#### Reference
[DbExtensions Namespace][3]  

[1]: https://learn.microsoft.com/dotnet/api/system.object
[2]: https://learn.microsoft.com/dotnet/api/system.attribute
[3]: ../README.md
[4]: _ctor.md
[5]: AutoSync.md
[6]: ../AutoSync/README.md
[7]: ConvertTo.md
[8]: IsDbGenerated.md
[9]: IsPrimaryKey.md
[10]: IsVersion.md
[11]: Name.md

================================================
FILE: docs/api/DbExtensions/ColumnAttribute/_ctor.md
================================================
ColumnAttribute Constructor
===========================
Initializes a new instance of the [ColumnAttribute][1] class
  
**Namespace:** [DbExtensions][2]  
**Assembly:** DbExtensions.dll

Syntax
------

```csharp
public ColumnAttribute()
```


See Also
--------

#### Reference
[ColumnAttribute Class][1]  
[DbExtensions Namespace][2]  

[1]: README.md
[2]: ../README.md

================================================
FILE: docs/api/DbExtensions/ComplexPropertyAttribute/Name.md
================================================
ComplexPropertyAttribute.Name Property
======================================
The base name for the columns on the complex property. The default is the property name.
  
**Namespace:** [DbExtensions][1]  
**Assembly:** DbExtensions.dll

Syntax
------

```csharp
public string? Name { get; set; }
```

#### Property Value
[String][2]

See Also
--------

#### Reference
[ComplexPropertyAttribute Class][3]  
[DbExtensions Namespace][1]  

[1]: ../README.md
[2]: https://learn.microsoft.com/dotnet/api/system.string
[3]: README.md

================================================
FILE: docs/api/DbExtensions/ComplexPropertyAttribute/README.md
================================================
ComplexPropertyAttribute Class
==============================
Designates a property as a complex property that groups columns of a table that share the same base name.


Inheritance Hierarchy
---------------------
[System.Object][1]  
  [System.Attribute][2]  
    **DbExtensions.ComplexPropertyAttribute**  
  
**Namespace:** [DbExtensions][3]  
**Assembly:** DbExtensions.dll

Syntax
------

```csharp
public sealed class ComplexPropertyAttribute : Attribute
```

The **ComplexPropertyAttribute** type exposes the following members.


Constructors
------------

| Name                          | Description                                                          |
| ----------------------------- | -------------------------------------------------------------------- |
| [ComplexPropertyAttribute][4] | Initializes a new instance of the **ComplexPropertyAttribute** class |


Properties
----------

| Name           | Description                                                                                                                                                                                                                                                                                   |
| -------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [Name][5]      | The base name for the columns on the complex property. The default is the property name.                                                                                                                                                                                                      |
| [Separator][6] | The separator to use between the base name and the complex property's columns. The default is null, which means the separator is taken from [DatabaseConfiguration.DefaultComplexPropertySeparator][7]. To use no separator and override the default configuration, use an empty [String][8]. |


See Also
--------

#### Reference
[DbExtensions Namespace][3]  

[1]: https://learn.microsoft.com/dotnet/api/system.object
[2]: https://learn.microsoft.com/dotnet/api/system.attribute
[3]: ../README.md
[4]: _ctor.md
[5]: Name.md
[6]: Separator.md
[7]: ../DatabaseConfiguration/DefaultComplexPropertySeparator.md
[8]: https://learn.microsoft.com/dotnet/api/system.string

================================================
FILE: docs/api/DbExtensions/ComplexPropertyAttribute/Separator.md
================================================
ComplexPropertyAttribute.Separator Property
===========================================
The separator to use between the base name and the complex property's columns. The default is null, which means the separator is taken from [DatabaseConfiguration.DefaultComplexPropertySeparator][1]. To use no separator and override the default configuration, use an empty [String][2].
  
**Namespace:** [DbExtensions][3]  
**Assembly:** DbExtensions.dll

Syntax
------

```csharp
public string? Separator { get; set; }
```

#### Property Value
[String][2]

See Also
--------

#### Reference
[ComplexPropertyAttribute Class][4]  
[DbExtensions Namespace][3]  

[1]: ../DatabaseConfiguration/DefaultComplexPropertySeparator.md
[2]: https://learn.microsoft.com/dotnet/api/system.string
[3]: ../README.md
[4]: README.md

================================================
FILE: docs/api/DbExtensions/ComplexPropertyAttribute/_ctor.md
================================================
ComplexPropertyAttribute Constructor
====================================
Initializes a new instance of the [ComplexPropertyAttribute][1] class
  
**Namespace:** [DbExtensions][2]  
**Assembly:** DbExtensions.dll

Syntax
------

```csharp
public ComplexPropertyAttribute()
```


See Also
--------

#### Reference
[ComplexPropertyAttribute Class][1]  
[DbExtensions Namespace][2]  

[1]: README.md
[2]: ../README.md

================================================
FILE: docs/api/DbExtensions/Database/Add.md
================================================
Database.Add Method
===================
Recursively executes INSERT commands for the specified *entity* and all its one-to-one and one-to-many associations.
  
**Namespace:** [DbExtensions][1]  
**Assembly:** DbExtensions.dll

Syntax
------

```csharp
public void Add(
	Object entity
)
```

#### Parameters

##### *entity*  [Object][2]
The object whose INSERT command is to be executed. This parameter is named entity for consistency with the other CRUD methods, but in this case it doesn't need to be an actual entity, which means it doesn't need to have a primary key.


Remarks
-------
This method is a shortcut for `db.Table(entity.GetType()).Add(entity)`.

See Also
--------

#### Reference
[Database Class][3]  
[DbExtensions Namespace][1]  
[SqlTable.Add(Object)][4]  

[1]: ../README.md
[2]: https://learn.microsoft.com/dotnet/api/system.object
[3]: README.md
[4]: ../SqlTable/Add.md

================================================
FILE: docs/api/DbExtensions/Database/AddAsync.md
================================================
Database.AddAsync Method
========================
Recursively executes INSERT commands for the specified *entity* and all its one-to-one and one-to-many associations.
  
**Namespace:** [DbExtensions][1]  
**Assembly:** DbExtensions.dll

Syntax
------

```csharp
public ValueTask AddAsync(
	Object entity,
	CancellationToken cancellationToken = default
)
```

#### Parameters

##### *entity*  [Object][2]
The object whose INSERT command is to be executed. This parameter is named entity for consistency with the other CRUD methods, but in this case it doesn't need to be an actual entity, which means it doesn't need to have a primary key.

##### *cancellationToken*  [CancellationToken][3]  (Optional)
The [CancellationToken][3] to monitor for cancellation requests. The default is [None][4].

#### Return Value
[ValueTask][5]

Remarks
-------
This method is a shortcut for `await db.Table(entity.GetType()).AddAsync(entity, cancellationToken)`.

See Also
--------

#### Reference
[Database Class][6]  
[DbExtensions Namespace][1]  
[SqlTable.AddAsync(Object, CancellationToken)][7]  

[1]: ../README.md
[2]: https://learn.microsoft.com/dotnet/api/system.object
[3]: https://learn.microsoft.com/dotnet/api/system.threading.cancellationtoken
[4]: https://learn.microsoft.com/dotnet/api/system.threading.cancellationtoken.none
[5]: https://learn.microsoft.com/dotnet/api/system.threading.tasks.valuetask
[6]: README.md
[7]: ../SqlTable/AddAsync.md

================================================
FILE: docs/api/DbExtensions/Database/AsyncMap.md
================================================
Database.AsyncMap(SqlBuilder) Method
====================================
Maps the results of the *query* to dynamic objects. The query is deferred-executed.
  
**Namespace:** [DbExtensions][1]  
**Assembly:** DbExtensions.dll

Overloads
---------

| Name                                                                  | Description                                                                                                                 |
| --------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- |
| **AsyncMap(SqlBuilder)**                                              | Maps the results of the *query* to dynamic objects. The query is deferred-executed.                                         |
| [AsyncMap(SqlBuilder, Type)][2]                                       | Maps the results of the *query* to objects of type specified by the *resultType* parameter. The query is deferred-executed. |
| [AsyncMap&lt;TResult>(SqlBuilder)][3]                                 | Maps the results of the *query* to TResult objects. The query is deferred-executed.                                         |
| [AsyncMap&lt;TResult>(SqlBuilder, Func&lt;DbDataReader, TResult>)][4] | Maps the results of the *query* to TResult objects, using the provided *mapper* delegate.                                   |


Syntax
------

```csharp
public IAsyncEnumerable<Object> AsyncMap(
	SqlBuilder query
)
```

#### Parameters

##### *query*  [SqlBuilder][5]
The query.

#### Return Value
[IAsyncEnumerable][6]&lt;[Object][7]>  
The results of the query as dynamic objects.

See Also
--------

#### Reference
[Database Class][8]  
[DbExtensions Namespace][1]  

[1]: ../README.md
[2]: AsyncMap_1.md
[3]: AsyncMap__1.md
[4]: AsyncMap__1_1.md
[5]: ../SqlBuilder/README.md
[6]: https://learn.microsoft.com/dotnet/api/system.collections.generic.iasyncenumerable-1
[7]: https://learn.microsoft.com/dotnet/api/system.object
[8]: README.md

================================================
FILE: docs/api/DbExtensions/Database/AsyncMap_1.md
================================================
Database.AsyncMap(SqlBuilder, Type) Method
==========================================
Maps the results of the *query* to objects of type specified by the *resultType* parameter. The query is deferred-executed.
  
**Namespace:** [DbExtensions][1]  
**Assembly:** DbExtensions.dll

Overloads
---------

| Name                                                                  | Description                                                                                                                 |
| --------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- |
| [AsyncMap(SqlBuilder)][2]                                             | Maps the results of the *query* to dynamic objects. The query is deferred-executed.                                         |
| **AsyncMap(SqlBuilder, Type)**                                        | Maps the results of the *query* to objects of type specified by the *resultType* parameter. The query is deferred-executed. |
| [AsyncMap&lt;TResult>(SqlBuilder)][3]                                 | Maps the results of the *query* to TResult objects. The query is deferred-executed.                                         |
| [AsyncMap&lt;TResult>(SqlBuilder, Func&lt;DbDataReader, TResult>)][4] | Maps the results of the *query* to TResult objects, using the provided *mapper* delegate.                                   |


Syntax
------

```csharp
public IAsyncEnumerable<Object> AsyncMap(
	SqlBuilder query,
	Type resultType
)
```

#### Parameters

##### *query*  [SqlBuilder][5]
The query.

##### *resultType*  [Type][6]
The type of objects to map the results to.

#### Return Value
[IAsyncEnumerable][7]&lt;[Object][8]>  
The results of the query as objects of type specified by the *resultType* parameter.

See Also
--------

#### Reference
[Database Class][9]  
[DbExtensions Namespace][1]  

[1]: ../README.md
[2]: AsyncMap.md
[3]: AsyncMap__1.md
[4]: AsyncMap__1_1.md
[5]: ../SqlBuilder/README.md
[6]: https://learn.microsoft.com/dotnet/api/system.type
[7]: https://learn.microsoft.com/dotnet/api/system.collections.generic.iasyncenumerable-1
[8]: https://learn.microsoft.com/dotnet/api/system.object
[9]: README.md

================================================
FILE: docs/api/DbExtensions/Database/AsyncMap__1.md
================================================
Database.AsyncMap&lt;TResult>(SqlBuilder) Method
================================================
Maps the results of the *query* to TResult objects. The query is deferred-executed.
  
**Namespace:** [DbExtensions][1]  
**Assembly:** DbExtensions.dll

Overloads
---------

| Name                                                                  | Description                                                                                                                 |
| --------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- |
| [AsyncMap(SqlBuilder)][2]                                             | Maps the results of the *query* to dynamic objects. The query is deferred-executed.                                         |
| [AsyncMap(SqlBuilder, Type)][3]                                       | Maps the results of the *query* to objects of type specified by the *resultType* parameter. The query is deferred-executed. |
| **AsyncMap&lt;TResult>(SqlBuilder)**                                  | Maps the results of the *query* to TResult objects. The query is deferred-executed.                                         |
| [AsyncMap&lt;TResult>(SqlBuilder, Func&lt;DbDataReader, TResult>)][4] | Maps the results of the *query* to TResult objects, using the provided *mapper* delegate.                                   |


Syntax
------

```csharp
public IAsyncEnumerable<TResult> AsyncMap<TResult>(
	SqlBuilder query
)

```

#### Parameters

##### *query*  [SqlBuilder][5]
The query.

#### Type Parameters

##### *TResult*
The type of objects to map the results to.

#### Return Value
[IAsyncEnumerable][6]&lt;**TResult**>  
The results of the query as TResult objects.

See Also
--------

#### Reference
[Database Class][7]  
[DbExtensions Namespace][1]  

[1]: ../README.md
[2]: AsyncMap.md
[3]: AsyncMap_1.md
[4]: AsyncMap__1_1.md
[5]: ../SqlBuilder/README.md
[6]: https://learn.microsoft.com/dotnet/api/system.collections.generic.iasyncenumerable-1
[7]: README.md

================================================
FILE: docs/api/DbExtensions/Database/AsyncMap__1_1.md
================================================
Database.AsyncMap&lt;TResult>(SqlBuilder, Func&lt;DbDataReader, TResult>) Method
================================================================================
Maps the results of the *query* to TResult objects, using the provided *mapper* delegate.
  
**Namespace:** [DbExtensions][1]  
**Assembly:** DbExtensions.dll

Overloads
---------

| Name                                                                 | Description                                                                                                                 |
| -------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- |
| [AsyncMap(SqlBuilder)][2]                                            | Maps the results of the *query* to dynamic objects. The query is deferred-executed.                                         |
| [AsyncMap(SqlBuilder, Type)][3]                                      | Maps the results of the *query* to objects of type specified by the *resultType* parameter. The query is deferred-executed. |
| [AsyncMap&lt;TResult>(SqlBuilder)][4]                                | Maps the results of the *query* to TResult objects. The query is deferred-executed.                                         |
| **AsyncMap&lt;TResult>(SqlBuilder, Func&lt;DbDataReader, TResult>)** | Maps the results of the *query* to TResult objects, using the provided *mapper* delegate.                                   |


Syntax
------

```csharp
public IAsyncEnumerable<TResult> AsyncMap<TResult>(
	SqlBuilder query,
	Func<DbDataReader, TResult> mapper
)

```

#### Parameters

##### *query*  [SqlBuilder][5]
The query.

##### *mapper*  [Func][6]&lt;[DbDataReader][7], **TResult**>
The delegate for creating TResult objects from an [DbDataReader][7] object.

#### Type Parameters

##### *TResult*
The type of objects to map the results to.

#### Return Value
[IAsyncEnumerable][8]&lt;**TResult**>  
The results of the query as TResult objects.

See Also
--------

#### Reference
[Database Class][9]  
[DbExtensions Namespace][1]  

[1]: ../README.md
[2]: AsyncMap.md
[3]: AsyncMap_1.md
[4]: AsyncMap__1.md
[5]: ../SqlBuilder/README.md
[6]: https://learn.microsoft.com/dotnet/api/system.func-2
[7]: https://learn.microsoft.com/dotnet/api/system.data.common.dbdatareader
[8]: https://learn.microsoft.com/dotnet/api/system.collections.generic.iasyncenumerable-1
[9]: README.md

================================================
FILE: docs/api/DbExtensions/Database/Configuration.md
================================================
Database.Configuration Property
===============================
Provides access to configuration options for this instance.
  
**Namespace:** [DbExtensions][1]  
**Assembly:** DbExtensions.dll

Syntax
------

```csharp
public DatabaseConfiguration Configuration { get; }
```

#### Property Value
[DatabaseConfiguration][2]

See Also
--------

#### Reference
[Database Class][3]  
[DbExtensions Namespace][1]  

[1]: ../README.md
[2]: ../DatabaseConfiguration/README.md
[3]: README.md

================================================
FILE: docs/api/DbExtensions/Database/Connection.md
================================================
Database.Connection Property
============================
Gets the connection to associate with new commands.
  
**Namespace:** [DbExtensions][1]  
**Assembly:** DbExtensions.dll

Syntax
------

```csharp
public DbConnection Connection { get; }
```

#### Property Value
[DbConnection][2]

See Also
--------

#### Reference
[Database Class][3]  
[DbExtensions Namespace][1]  

[1]: ../README.md
[2]: https://learn.microsoft.com/dotnet/api/system.data.common.dbconnection
[3]: README.md

================================================
FILE: docs/api/DbExtensions/Database/CreateCommand.md
================================================
Database.CreateCommand Method
=============================
Creates and returns a [DbCommand][1] object from the specified *sqlBuilder*.
  
**Namespace:** [DbExtensions][2]  
**Assembly:** DbExtensions.dll

Syntax
------

```csharp
public virtual DbCommand CreateCommand(
	SqlBuilder sqlBuilder
)
```

#### Parameters

##### *sqlBuilder*  [SqlBuilder][3]
The [SqlBuilder][3] that provides the command's text and parameters.

#### Return Value
[DbCommand][1]  
 A new [DbCommand][1] object with its [CommandText][4] property initialized with the *sqlBuilder*'s string representation, and its [Parameters][5] property is initialized with the values from the [ParameterValues][6] property of the *sqlBuilder* parameter.

See Also
--------

#### Reference
[Database Class][7]  
[DbExtensions Namespace][2]  

[1]: https://learn.microsoft.com/dotnet/api/system.data.common.dbcommand
[2]: ../README.md
[3]: ../SqlBuilder/README.md
[4]: https://learn.microsoft.com/dotnet/api/system.data.common.dbcommand.commandtext
[5]: https://learn.microsoft.com/dotnet/api/system.data.common.dbcommand.parameters
[6]: ../SqlBuilder/ParameterValues.md
[7]: README.md

================================================
FILE: docs/api/DbExtensions/Database/Dispose.md
================================================
Database.Dispose Method
=======================
Releases all resources used by the current instance of the [Database][1] class.
  
**Namespace:** [DbExtensions][2]  
**Assembly:** DbExtensions.dll

Overloads
---------

| Name                  | Description                                                                     |
| --------------------- | ------------------------------------------------------------------------------- |
| **Dispose()**         | Releases all resources used by the current instance of the [Database][1] class. |
| [Dispose(Boolean)][3] | Releases the resources used by this [Database][1] instance.                     |


Syntax
------

```csharp
public void Dispose()
```

#### Implements
[IDisposable.Dispose()][4]  


See Also
--------

#### Reference
[Database Class][1]  
[DbExtensions Namespace][2]  

[1]: README.md
[2]: ../README.md
[3]: Dispose_1.md
[4]: https://learn.microsoft.com/dotnet/api/system.idisposable.dispose

================================================
FILE: docs/api/DbExtensions/Database/Dispose_1.md
================================================
Database.Dispose(Boolean) Method
================================
Releases the resources used by this [Database][1] instance.
  
**Namespace:** [DbExtensions][2]  
**Assembly:** DbExtensions.dll

Overloads
---------

| Name                 | Description                                                                     |
| -------------------- | ------------------------------------------------------------------------------- |
| [Dispose()][3]       | Releases all resources used by the current instance of the [Database][1] class. |
| **Dispose(Boolean)** | Releases the resources used by this [Database][1] instance.                     |


Syntax
------

```csharp
protected virtual void Dispose(
	bool disposing
)
```

#### Parameters

##### *disposing*  [Boolean][4]
`true` if this method is being called due to a call to [Dispose()][3]; otherwise, `false`.


See Also
--------

#### Reference
[Database Class][1]  
[DbExtensions Namespace][2]  

[1]: README.md
[2]: ../README.md
[3]: Dispose.md
[4]: https://learn.microsoft.com/dotnet/api/system.boolean

================================================
FILE: docs/api/DbExtensions/Database/EnsureConnectionOpen.md
================================================
Database.EnsureConnectionOpen Method
====================================
Opens [Connection][1] (if it's not open) and returns an [IDisposable][2] object you can use to close it (if it wasn't open).
  
**Namespace:** [DbExtensions][3]  
**Assembly:** DbExtensions.dll

Syntax
------

```csharp
public IDisposable EnsureConnectionOpen()
```

#### Return Value
[IDisposable][2]  
An [IDisposable][2] object to close the connection.

Remarks
-------
Use this method with the `using` statement in C# or Visual Basic to ensure that a block of code is always executed with an open connection.

Example
-------

```csharp
using (db.EnsureConnectionOpen()) {
  // Execute commands.
}
```


See Also
--------

#### Reference
[Database Class][4]  
[DbExtensions Namespace][3]  

[1]: Connection.md
[2]: https://learn.microsoft.com/dotnet/api/system.idisposable
[3]: ../README.md
[4]: README.md

================================================
FILE: docs/api/DbExtensions/Database/EnsureConnectionOpenAsync.md
================================================
Database.EnsureConnectionOpenAsync Method
=========================================
Opens [Connection][1] (if it's not open) and returns an [IAsyncDisposable][2] object you can use to close it (if it wasn't open).
  
**Namespace:** [DbExtensions][3]  
**Assembly:** DbExtensions.dll

Syntax
------

```csharp
public ValueTask<IAsyncDisposable> EnsureConnectionOpenAsync(
	CancellationToken cancellationToken = default
)
```

#### Parameters

##### *cancellationToken*  [CancellationToken][4]  (Optional)
The [CancellationToken][4] to monitor for cancellation requests. The default is [None][5].

#### Return Value
[ValueTask][6]&lt;[IAsyncDisposable][2]>  
An [IAsyncDisposable][2] object to close the connection.

Remarks
-------
Use this method with the `using` statement in C# or Visual Basic to ensure that a block of code is always executed with an open connection.

Example
-------

```csharp
await using (await db.EnsureConnectionOpenAsync()) {
  // Execute commands.
}
```


See Also
--------

#### Reference
[Database Class][7]  
[DbExtensions Namespace][3]  

[1]: Connection.md
[2]: https://learn.microsoft.com/dotnet/api/system.iasyncdisposable
[3]: ../README.md
[4]: https://learn.microsoft.com/dotnet/api/system.threading.cancellationtoken
[5]: https://learn.microsoft.com/dotnet/api/system.threading.cancellationtoken.none
[6]: https://learn.microsoft.com/dotnet/api/system.threading.tasks.valuetask-1
[7]: README.md

================================================
FILE: docs/api/DbExtensions/Database/EnsureInTransaction.md
================================================
Database.EnsureInTransaction Method
===================================
Returns a virtual transaction that you can use to ensure a code block is always executed in a transaction, new or existing.
  
**Namespace:** [DbExtensions][1]  
**Assembly:** DbExtensions.dll

Overloads
---------

| Name                                     | Description                                                                                                                 |
| ---------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- |
| **EnsureInTransaction()**                | Returns a virtual transaction that you can use to ensure a code block is always executed in a transaction, new or existing. |
| [EnsureInTransaction(IsolationLevel)][2] | Returns a virtual transaction that you can use to ensure a code block is always executed in a transaction, new or existing. |


Syntax
------

```csharp
public DbTransaction EnsureInTransaction()
```

#### Return Value
[DbTransaction][3]  
 A virtual transaction you can use to ensure a code block is always executed in a transaction, new or existing.

Remarks
-------
This method returns a virtual transaction that wraps an existing or new transaction. By calling [Commit()][4] on the returned object, this object will then call [Commit()][4] on the wrapped transaction if the transaction was just created, or do nothing if it was previously created.

Example
-------

Calls to this method can be nested, like in the following example:

```csharp
void DoSomething() {

   using (var tx = this.db.EnsureInTransaction()) {

      // Execute commands

      DoSomethingElse();

      tx.Commit();
   }
}

void DoSomethingElse() { 

   using (var tx = this.db.EnsureInTransaction()) {

      // Execute commands

      tx.Commit();
   }
}
```


See Also
--------

#### Reference
[Database Class][5]  
[DbExtensions Namespace][1]  

[1]: ../README.md
[2]: EnsureInTransaction_1.md
[3]: https://learn.microsoft.com/dotnet/api/system.data.common.dbtransaction
[4]: https://learn.microsoft.com/dotnet/api/system.data.common.dbtransaction.commit
[5]: README.md

================================================
FILE: docs/api/DbExtensions/Database/EnsureInTransactionAsync.md
================================================
Database.EnsureInTransactionAsync(IsolationLevel, CancellationToken) Method
===========================================================================
Returns a virtual transaction that you can use to ensure a code block is always executed in a transaction, new or existing.
  
**Namespace:** [DbExtensions][1]  
**Assembly:** DbExtensions.dll

Overloads
---------

| Name                                                            | Description                                                                                                                 |
| --------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- |
| [EnsureInTransactionAsync(CancellationToken)][2]                | Returns a virtual transaction that you can use to ensure a code block is always executed in a transaction, new or existing. |
| **EnsureInTransactionAsync(IsolationLevel, CancellationToken)** | Returns a virtual transaction that you can use to ensure a code block is always executed in a transaction, new or existing. |


Syntax
------

```csharp
public virtual ValueTask<DbTransaction> EnsureInTransactionAsync(
	IsolationLevel isolationLevel,
	CancellationToken cancellationToken = default
)
```

#### Parameters

##### *isolationLevel*  [IsolationLevel][3]
Specifies the isolation level for the transaction. This parameter is ignored when using an existing transaction.

##### *cancellationToken*  [CancellationToken][4]  (Optional)
The [CancellationToken][4] to monitor for cancellation requests. The default is [None][5].

#### Return Value
[ValueTask][6]&lt;[DbTransaction][7]>  
 A virtual transaction you can use to ensure a code block is always executed in a transaction, new or existing.

Remarks
-------
This method returns a virtual transaction that wraps an existing or new transaction. By calling [Commit()][8] on the returned object, this object will then call [Commit()][8] on the wrapped transaction if the transaction was just created, or do nothing if it was previously created.

Example
-------

Calls to this method can be nested, like in the following example:

```csharp
async Task DoSomething() {

   await using (var tx = await this.db.EnsureInTransactionAsync()) {

      // Execute commands

      await DoSomethingElse();

      await tx.CommitAsync();
   }
}

async Task DoSomethingElse() {

   await using (var tx = await this.db.EnsureInTransactionAsync()) {

      // Execute commands

      await tx.CommitAsync();
   }
}
```


See Also
--------

#### Reference
[Database Class][9]  
[DbExtensions Namespace][1]  

[1]: ../README.md
[2]: EnsureInTransactionAsync_1.md
[3]: https://learn.microsoft.com/dotnet/api/system.data.isolationlevel
[4]: https://learn.microsoft.com/dotnet/api/system.threading.cancellationtoken
[5]: https://learn.microsoft.com/dotnet/api/system.threading.cancellationtoken.none
[6]: https://learn.microsoft.com/dotnet/api/system.threading.tasks.valuetask-1
[7]: https://learn.microsoft.com/dotnet/api/system.data.common.dbtransaction
[8]: https://learn.microsoft.com/dotnet/api/system.data.common.dbtransaction.commit
[9]: README.md

================================================
FILE: docs/api/DbExtensions/Database/EnsureInTransactionAsync_1.md
================================================
Database.EnsureInTransactionAsync(CancellationToken) Method
===========================================================
Returns a virtual transaction that you can use to ensure a code block is always executed in a transaction, new or existing.
  
**Namespace:** [DbExtensions][1]  
**Assembly:** DbExtensions.dll

Overloads
---------

| Name                                                             | Description                                                                                                                 |
| ---------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- |
| **EnsureInTransactionAsync(CancellationToken)**                  | Returns a virtual transaction that you can use to ensure a code block is always executed in a transaction, new or existing. |
| [EnsureInTransactionAsync(IsolationLevel, CancellationToken)][2] | Returns a virtual transaction that you can use to ensure a code block is always executed in a transaction, new or existing. |


Syntax
------

```csharp
public ValueTask<DbTransaction> EnsureInTransactionAsync(
	CancellationToken cancellationToken = default
)
```

#### Parameters

##### *cancellationToken*  [CancellationToken][3]  (Optional)
The [CancellationToken][3] to monitor for cancellation requests. The default is [None][4].

#### Return Value
[ValueTask][5]&lt;[DbTransaction][6]>  
 A virtual transaction you can use to ensure a code block is always executed in a transaction, new or existing.

Remarks
-------
This method returns a virtual transaction that wraps an existing or new transaction. By calling [Commit()][7] on the returned object, this object will then call [Commit()][7] on the wrapped transaction if the transaction was just created, or do nothing if it was previously created.

Example
-------

Calls to this method can be nested, like in the following example:

```csharp
async Task DoSomething() {

   await using (var tx = await this.db.EnsureInTransactionAsync()) {

      // Execute commands

      await DoSomethingElse();

      await tx.CommitAsync();
   }
}

async Task DoSomethingElse() {

   await using (var tx = await this.db.EnsureInTransactionAsync()) {

      // Execute commands

      await tx.CommitAsync();
   }
}
```


See Also
--------

#### Reference
[Database Class][8]  
[DbExtensions Namespace][1]  

[1]: ../README.md
[2]: EnsureInTransactionAsync.md
[3]: https://learn.microsoft.com/dotnet/api/system.threading.cancellationtoken
[4]: https://learn.microsoft.com/dotnet/api/system.threading.cancellationtoken.none
[5]: https://learn.microsoft.com/dotnet/api/system.threading.tasks.valuetask-1
[6]: https://learn.microsoft.com/dotnet/api/system.data.common.dbtransaction
[7]: https://learn.microsoft.com/dotnet/api/system.data.common.dbtransaction.commit
[8]: README.md

================================================
FILE: docs/api/DbExtensions/Database/EnsureInTransaction_1.md
================================================
Database.EnsureInTransaction(IsolationLevel) Method
===================================================
Returns a virtual transaction that you can use to ensure a code block is always executed in a transaction, new or existing.
  
**Namespace:** [DbExtensions][1]  
**Assembly:** DbExtensions.dll

Overloads
---------

| Name                                    | Description                                                                                                                 |
| --------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- |
| [EnsureInTransaction()][2]              | Returns a virtual transaction that you can use to ensure a code block is always executed in a transaction, new or existing. |
| **EnsureInTransaction(IsolationLevel)** | Returns a virtual transaction that you can use to ensure a code block is always executed in a transaction, new or existing. |


Syntax
------

```csharp
public virtual DbTransaction EnsureInTransaction(
	IsolationLevel isolationLevel
)
```

#### Parameters

##### *isolationLevel*  [IsolationLevel][3]
Specifies the isolation level for the transaction. This parameter is ignored when using an existing transaction.

#### Return Value
[DbTransaction][4]  
 A virtual transaction you can use to ensure a code block is always executed in a transaction, new or existing.

Remarks
-------
This method returns a virtual transaction that wraps an existing or new transaction. By calling [Commit()][5] on the returned object, this object will then call [Commit()][5] on the wrapped transaction if the transaction was just created, or do nothing if it was previously created.

Example
-------

Calls to this method can be nested, like in the following example:

```csharp
void DoSomething() {

   using (var tx = this.db.EnsureInTransaction()) {

      // Execute commands

      DoSomethingElse();

      tx.Commit();
   }
}

void DoSomethingElse() { 

   using (var tx = this.db.EnsureInTransaction()) {

      // Execute commands

      tx.Commit();
   }
}
```


See Also
--------

#### Reference
[Database Class][6]  
[DbExtensions Namespace][1]  

[1]: ../README.md
[2]: EnsureInTransaction.md
[3]: https://learn.microsoft.com/dotnet/api/system.data.isolationlevel
[4]: https://learn.microsoft.com/dotnet/api/system.data.common.dbtransaction
[5]: https://learn.microsoft.com/dotnet/api/system.data.common.dbtransaction.commit
[6]: README.md

================================================
FILE: docs/api/DbExtensions/Database/Execute.md
================================================
Database.Execute Method
=======================
Executes the *nonQuery* command. Optionally uses a transaction and validates affected records value before committing.
  
**Namespace:** [DbExtensions][1]  
**Assembly:** DbExtensions.dll

Syntax
------

```csharp
public int Execute(
	SqlBuilder nonQuery,
	int affect = -1,
	bool exact = false
)
```

#### Parameters

##### *nonQuery*  [SqlBuilder][2]
The non-query command to execute.

##### *affect*  [Int32][3]  (Optional)
The number of records the command should affect. This value is ignored if less or equal to -1.

##### *exact*  [Boolean][4]  (Optional)
`true` if the number of affected records should exactly match *affect*; `false` if a lower number is acceptable.

#### Return Value
[Int32][3]  
The number of affected records.

Exceptions
----------

| Exception                    | Condition                                                |
| ---------------------------- | -------------------------------------------------------- |
| [ChangeConflictException][5] | The number of affected records is not equal to *affect*. |


See Also
--------

#### Reference
[Database Class][6]  
[DbExtensions Namespace][1]  

[1]: ../README.md
[2]: ../SqlBuilder/README.md
[3]: https://learn.microsoft.com/dotnet/api/system.int32
[4]: https://learn.microsoft.com/dotnet/api/system.boolean
[5]: ../ChangeConflictException/README.md
[6]: README.md

================================================
FILE: docs/api/DbExtensions/Database/ExecuteAsync.md
================================================
Database.ExecuteAsync Method
============================
Executes the *nonQuery* command. Optionally uses a transaction and validates affected records value before committing.
  
**Namespace:** [DbExtensions][1]  
**Assembly:** DbExtensions.dll

Syntax
------

```csharp
public ValueTask<int> ExecuteAsync(
	SqlBuilder nonQuery,
	int affect = -1,
	bool exact = false,
	CancellationToken cancellationToken = default
)
```

#### Parameters

##### *nonQuery*  [SqlBuilder][2]
The non-query command to execute.

##### *affect*  [Int32][3]  (Optional)
The number of records the command should affect. This value is ignored if less or equal to -1.

##### *exact*  [Boolean][4]  (Optional)
`true` if the number of affected records should exactly match *affect*; `false` if a lower number is acceptable.

##### *cancellationToken*  [CancellationToken][5]  (Optional)
The [CancellationToken][5] to monitor for cancellation requests. The default is [None][6].

#### Return Value
[ValueTask][7]&lt;[Int32][3]>  
The number of affected records.

Exceptions
----------

| Exception                    | Condition                                                |
| ---------------------------- | -------------------------------------------------------- |
| [ChangeConflictException][8] | The number of affected records is not equal to *affect*. |


See Also
--------

#### Reference
[Database Class][9]  
[DbExtensions Namespace][1]  

[1]: ../README.md
[2]: ../SqlBuilder/README.md
[3]: https://learn.microsoft.com/dotnet/api/system.int32
[4]: https://learn.microsoft.com/dotnet/api/system.boolean
[5]: https://learn.microsoft.com/dotnet/api/system.threading.cancellationtoken
[6]: https://learn.microsoft.com/dotnet/api/system.threading.cancellationtoken.none
[7]: https://learn.microsoft.com/dotnet/api/system.threading.tasks.valuetask-1
[8]: ../ChangeConflictException/README.md
[9]: README.md

================================================
FILE: docs/api/DbExtensions/Database/FindAsync__1.md
================================================
Database.FindAsync&lt;TEntity> Method
=====================================
Gets the entity whose primary key matches the *id* parameter.
  
**Namespace:** [DbExtensions][1]  
**Assembly:** DbExtensions.dll

Syntax
------

```csharp
public ValueTask<TEntity> FindAsync<TEntity>(
	Object id,
	CancellationToken cancellationToken = default
)
where TEntity : class

```

#### Parameters

##### *id*  [Object][2]
The primary key value.

##### *cancellationToken*  [CancellationToken][3]  (Optional)
The [CancellationToken][3] to monitor for cancellation requests. The default is [None][4].

#### Type Parameters

##### *TEntity*
The type of the entity.

#### Return Value
[ValueTask][5]&lt;**TEntity**>  
 The entity whose primary key matches the *id* parameter, or null if the *id* does not exist.

Remarks
-------
This method is a shortcut for `await db.Table<TEntity>().FindAsync(id, cancellationToken)`.

See Also
--------

#### Reference
[Database Class][6]  
[DbExtensions Namespace][1]  

[1]: ../README.md
[2]: https://learn.microsoft.com/dotnet/api/system.object
[3]: https://learn.microsoft.com/dotnet/api/system.threading.cancellationtoken
[4]: https://learn.microsoft.com/dotnet/api/system.threading.cancellationtoken.none
[5]: https://learn.microsoft.com/dotnet/api/system.threading.tasks.valuetask-1
[6]: README.md

================================================
FILE: docs/api/DbExtensions/Database/Find__1.md
================================================
Database.Find&lt;TEntity> Method
================================
Gets the entity whose primary key matches the *id* parameter.
  
**Namespace:** [DbExtensions][1]  
**Assembly:** DbExtensions.dll

Syntax
------

```csharp
public TEntity Find<TEntity>(
	Object id
)
where TEntity : class

```

#### Parameters

##### *id*  [Object][2]
The primary key value.

#### Type Parameters

##### *TEntity*
The type of the entity.

#### Return Value
**TEntity**  
 The entity whose primary key matches the *id* parameter, or null if the *id* does not exist.

Remarks
-------
This method is a shortcut for `db.Table<TEntity>().Find(id)`.

See Also
--------

#### Reference
[Database Class][3]  
[DbExtensions Namespace][1]  
[SqlSet&lt;TResult>.Find(Object)][4]  

[1]: ../README.md
[2]: https://learn.microsoft.com/dotnet/api/system.object
[3]: README.md
[4]: ../SqlSet_1/Find.md

================================================
FILE: docs/api/DbExtensions/Database/From.md
================================================
Database.From(String) Method
============================
Creates and returns a new [SqlSet][1] using the provided table name.
  
**Namespace:** [DbExtensions][2]  
**Assembly:** DbExtensions.dll

Overloads
---------

| Name                          | Description                                                                      |
| ----------------------------- | -------------------------------------------------------------------------------- |
| **From(String)**              | Creates and returns a new [SqlSet][1] using the provided table name.             |
| [From(String, Type)][3]       | Creates and returns a new [SqlSet][1] using the provided table name.             |
| [From&lt;TResult>(String)][4] | Creates and returns a new [SqlSet&lt;TResult>][5] using the provided table name. |


Syntax
------

```csharp
public SqlSet From(
	string tableName
)
```

#### Parameters

##### *tableName*  [String][6]
The name of the table that will be the source of data for the set.

#### Return Value
[SqlSet][1]  
A new [SqlSet][1] object.

See Also
--------

#### Reference
[Database Class][7]  
[DbExtensions Namespace][2]  

[1]: ../SqlSet/README.md
[2]: ../README.md
[3]: From_1.md
[4]: From__1.md
[5]: ../SqlSet_1/README.md
[6]: https://learn.microsoft.com/dotnet/api/system.string
[7]: README.md

================================================
FILE: docs/api/DbExtensions/Database/FromQuery.md
================================================
Database.FromQuery(SqlBuilder) Method
=====================================
Creates and returns a new [SqlSet][1] using the provided defining query.
  
**Namespace:** [DbExtensions][2]  
**Assembly:** DbExtensions.dll

Overloads
---------

| Name                                                                   | Description                                                                                     |
| ---------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- |
| **FromQuery(SqlBuilder)**                                              | Creates and returns a new [SqlSet][1] using the provided defining query.                        |
| [FromQuery(SqlBuilder, Type)][3]                                       | Creates and returns a new [SqlSet][1] using the provided defining query.                        |
| [FromQuery&lt;TResult>(SqlBuilder)][4]                                 | Creates and returns a new [SqlSet&lt;TResult>][5] using the provided defining query.            |
| [FromQuery&lt;TResult>(SqlBuilder, Func&lt;DbDataReader, TResult>)][6] | Creates and returns a new [SqlSet&lt;TResult>][5] using the provided defining query and mapper. |


Syntax
------

```csharp
public SqlSet FromQuery(
	SqlBuilder definingQuery
)
```

#### Parameters

##### *definingQuery*  [SqlBuilder][7]
The SQL query that will be the source of data for the set.

#### Return Value
[SqlSet][1]  
A new [SqlSet][1] object.

See Also
--------

#### Reference
[Database Class][8]  
[DbExtensions Namespace][2]  

[1]: ../SqlSet/README.md
[2]: ../README.md
[3]: FromQuery_1.md
[4]: FromQuery__1.md
[5]: ../SqlSet_1/README.md
[6]: FromQuery__1_1.md
[7]: ../SqlBuilder/README.md
[8]: README.md

================================================
FILE: docs/api/DbExtensions/Database/FromQuery_1.md
================================================
Database.FromQuery(SqlBuilder, Type) Method
===========================================
Creates and returns a new [SqlSet][1] using the provided defining query.
  
**Namespace:** [DbExtensions][2]  
**Assembly:** DbExtensions.dll

Overloads
---------

| Name                                                                   | Description                                                                                     |
| ---------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- |
| [FromQuery(SqlBuilder)][3]                                             | Creates and returns a new [SqlSet][1] using the provided defining query.                        |
| **FromQuery(SqlBuilder, Type)**                                        | Creates and returns a new [SqlSet][1] using the provided defining query.                        |
| [FromQuery&lt;TResult>(SqlBuilder)][4]                                 | Creates and returns a new [SqlSet&lt;TResult>][5] using the provided defining query.            |
| [FromQuery&lt;TResult>(SqlBuilder, Func&lt;DbDataReader, TResult>)][6] | Creates and returns a new [SqlSet&lt;TResult>][5] using the provided defining query and mapper. |


Syntax
------

```csharp
public SqlSet FromQuery(
	SqlBuilder definingQuery,
	Type? resultType
)
```

#### Parameters

##### *definingQuery*  [SqlBuilder][7]
The SQL query that will be the source of data for the set.

##### *resultType*  [Type][8]
The type of objects to map the results to.

#### Return Value
[SqlSet][1]  
A new [SqlSet][1] object.

See Also
--------

#### Reference
[Database Class][9]  
[DbExtensions Namespace][2]  

[1]: ../SqlSet/README.md
[2]: ../README.md
[3]: FromQuery.md
[4]: FromQuery__1.md
[5]: ../SqlSet_1/README.md
[6]: FromQuery__1_1.md
[7]: ../SqlBuilder/README.md
[8]: https://learn.microsoft.com/dotnet/api/system.type
[9]: README.md

================================================
FILE: docs/api/DbExtensions/Database/FromQuery__1.md
================================================
Database.FromQuery&lt;TResult>(SqlBuilder) Method
=================================================
Creates and returns a new [SqlSet&lt;TResult>][1] using the provided defining query.
  
**Namespace:** [DbExtensions][2]  
**Assembly:** DbExtensions.dll

Overloads
---------

| Name                                                                   | Description                                                                                     |
| ---------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- |
| [FromQuery(SqlBuilder)][3]                                             | Creates and returns a new [SqlSet][4] using the provided defining query.                        |
| [FromQuery(SqlBuilder, Type)][5]                                       | Creates and returns a new [SqlSet][4] using the provided defining query.                        |
| **FromQuery&lt;TResult>(SqlBuilder)**                                  | Creates and returns a new [SqlSet&lt;TResult>][1] using the provided defining query.            |
| [FromQuery&lt;TResult>(SqlBuilder, Func&lt;DbDataReader, TResult>)][6] | Creates and returns a new [SqlSet&lt;TResult>][1] using the provided defining query and mapper. |


Syntax
------

```csharp
public SqlSet<TResult> FromQuery<TResult>(
	SqlBuilder definingQuery
)

```

#### Parameters

##### *definingQuery*  [SqlBuilder][7]
The SQL query that will be the source of data for the set.

#### Type Parameters

##### *TResult*
The type of objects to map the results to.

#### Return Value
[SqlSet][1]&lt;**TResult**>  
A new [SqlSet&lt;TResult>][1] object.

See Also
--------

#### Reference
[Database Class][8]  
[DbExtensions Namespace][2]  

[1]: ../SqlSet_1/README.md
[2]: ../README.md
[3]: FromQuery.md
[4]: ../SqlSet/README.md
[5]: FromQuery_1.md
[6]: FromQuery__1_1.md
[7]: ../SqlBuilder/README.md
[8]: README.md

================================================
FILE: docs/api/DbExtensions/Database/FromQuery__1_1.md
================================================
Database.FromQuery&lt;TResult>(SqlBuilder, Func&lt;DbDataReader, TResult>) Method
=================================================================================
Creates and returns a new [SqlSet&lt;TResult>][1] using the provided defining query and mapper.
  
**Namespace:** [DbExtensions][2]  
**Assembly:** DbExtensions.dll

Overloads
---------

| Name                                                                  | Description                                                                                     |
| --------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- |
| [FromQuery(SqlBuilder)][3]                                            | Creates and returns a new [SqlSet][4] using the provided defining query.                        |
| [FromQuery(SqlBuilder, Type)][5]                                      | Creates and returns a new [SqlSet][4] using the provided defining query.                        |
| [FromQuery&lt;TResult>(SqlBuilder)][6]                                | Creates and returns a new [SqlSet&lt;TResult>][1] using the provided defining query.            |
| **FromQuery&lt;TResult>(SqlBuilder, Func&lt;DbDataReader, TResult>)** | Creates and returns a new [SqlSet&lt;TResult>][1] using the provided defining query and mapper. |


Syntax
------

```csharp
public SqlSet<TResult> FromQuery<TResult>(
	SqlBuilder definingQuery,
	Func<DbDataReader, TResult> mapper
)

```

#### Parameters

##### *definingQuery*  [SqlBuilder][7]
The SQL query that will be the source of data for the set.

##### *mapper*  [Func][8]&lt;[DbDataReader][9], **TResult**>
A custom mapper function that creates TResult instances from the rows in the set.

#### Type Parameters

##### *TResult*
The type of objects to map the results to.

#### Return Value
[SqlSet][1]&lt;**TResult**>  
A new [SqlSet&lt;TResult>][1] object.

See Also
--------

#### Reference
[Database Class][10]  
[DbExtensions Namespace][2]  

[1]: ../SqlSet_1/README.md
[2]: ../README.md
[3]: FromQuery.md
[4]: ../SqlSet/README.md
[5]: FromQuery_1.md
[6]: FromQuery__1.md
[7]: ../SqlBuilder/README.md
[8]: https://learn.microsoft.com/dotnet/api/system.func-2
[9]: https://learn.microsoft.com/dotnet/api/system.data.common.dbdatareader
[10]: README.md

================================================
FILE: docs/api/DbExtensions/Database/From_1.md
================================================
Database.From(String, Type) Method
==================================
Creates and returns a new [SqlSet][1] using the provided table name.
  
**Namespace:** [DbExtensions][2]  
**Assembly:** DbExtensions.dll

Overloads
---------

| Name                          | Description                                                                      |
| ----------------------------- | -------------------------------------------------------------------------------- |
| [From(String)][3]             | Creates and returns a new [SqlSet][1] using the provided table name.             |
| **From(String, Type)**        | Creates and returns a new [SqlSet][1] using the provided table name.             |
| [From&lt;TResult>(String)][4] | Creates and returns a new [SqlSet&lt;TResult>][5] using the provided table name. |


Syntax
------

```csharp
public SqlSet From(
	string tableName,
	Type? resultType
)
```

#### Parameters

##### *tableName*  [String][6]
The name of the table that will be the source of data for the set.

##### *resultType*  [Type][7]
The type of objects to map the results to.

#### Return Value
[SqlSet][1]  
A new [SqlSet][1] object.

See Also
--------

#### Reference
[Database Class][8]  
[DbExtensions Namespace][2]  

[1]: ../SqlSet/README.md
[2]: ../README.md
[3]: From.md
[4]: From__1.md
[5]: ../SqlSet_1/README.md
[6]: https://learn.microsoft.com/dotnet/api/system.string
[7]: https://learn.microsoft.com/dotnet/api/system.type
[8]: README.md

================================================
FILE: docs/api/DbExtensions/Database/From__1.md
================================================
Database.From&lt;TResult>(String) Method
========================================
Creates and returns a new [SqlSet&lt;TResult>][1] using the provided table name.
  
**Namespace:** [DbExtensions][2]  
**Assembly:** DbExtensions.dll

Overloads
---------

| Name                         | Description                                                                      |
| ---------------------------- | -------------------------------------------------------------------------------- |
| [From(String)][3]            | Creates and returns a new [SqlSet][4] using the provided table name.             |
| [From(String, Type)][5]      | Creates and returns a new [SqlSet][4] using the provided table name.             |
| **From&lt;TResult>(String)** | Creates and returns a new [SqlSet&lt;TResult>][1] using the provided table name. |


Syntax
------

```csharp
public SqlSet<TResult> From<TResult>(
	string tableName
)

```

#### Parameters

##### *tableName*  [String][6]
The name of the table that will be the source of data for the set.

#### Type Parameters

##### *TResult*
The type of objects to map the results to.

#### Return Value
[SqlSet][1]&lt;**TResult**>  
A new [SqlSet&lt;TResult>][1] object.

See Also
--------

#### Reference
[Database Class][7]  
[DbExtensions Namespace][2]  

[1]: ../SqlSet_1/README.md
[2]: ../README.md
[3]: From.md
[4]: ../SqlSet/README.md
[5]: From_1.md
[6]: https://learn.microsoft.com/dotnet/api/system.string
[7]: README.md

================================================
FILE: docs/api/DbExtensions/Database/LastInsertId.md
================================================
Database.LastInsertId Method
============================
Gets the identity value of the last inserted record.
  
**Namespace:** [DbExtensions][1]  
**Assembly:** DbExtensions.dll

Syntax
------

```csharp
public virtual Object? LastInsertId()
```

#### Return Value
[Object][2]  
The identity value of the last inserted record.

Remarks
-------
It is very important to keep the connection open between the last command and this one, or else you might get the wrong value.

See Also
--------

#### Reference
[Database Class][3]  
[DbExtensions Namespace][1]  

[1]: ../README.md
[2]: https://learn.microsoft.com/dotnet/api/system.object
[3]: README.md

================================================
FILE: docs/api/DbExtensions/Database/LastInsertIdAsync.md
================================================
Database.LastInsertIdAsync Method
=================================
Gets the identity value of the last inserted record.
  
**Namespace:** [DbExtensions][1]  
**Assembly:** DbExtensions.dll

Syntax
------

```csharp
public virtual ValueTask<Object> LastInsertIdAsync(
	CancellationToken cancellationToken = default
)
```

#### Parameters

##### *cancellationToken*  [CancellationToken][2]  (Optional)
The [CancellationToken][2] to monitor for cancellation requests. The default is [None][3].

#### Return Value
[ValueTask][4]&lt;[Object][5]>  
The identity value of the last inserted record.

Remarks
-------
It is very important to keep the connection open between the last command and this one, or else you might get the wrong value.

See Also
--------

#### Reference
[Database Class][6]  
[DbExtensions Namespace][1]  

[1]: ../README.md
[2]: https://learn.microsoft.com/dotnet/api/system.threading.cancellationtoken
[3]: https://learn.microsoft.com/dotnet/api/system.threading.cancellationtoken.none
[4]: https://learn.microsoft.com/dotnet/api/system.threading.tasks.valuetask-1
[5]: https://learn.microsoft.com/dotnet/api/system.object
[6]: README.md

================================================
FILE: docs/api/DbExtensions/Database/Map.md
================================================
Database.Map(SqlBuilder) Method
===============================
Maps the results of the *query* to dynamic objects. The query is deferred-executed.
  
**Namespace:** [DbExtensions][1]  
**Assembly:** DbExtensions.dll

Overloads
---------

| Name                                                             | Description                                                                                                                 |
| ---------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- |
| **Map(SqlBuilder)**                                              | Maps the results of the *query* to dynamic objects. The query is deferred-executed.                                         |
| [Map(SqlBuilder, Type)][2]                                       | Maps the results of the *query* to objects of type specified by the *resultType* parameter. The query is deferred-executed. |
| [Map&lt;TResult>(SqlBuilder)][3]                                 | Maps the results of the *query* to TResult objects. The query is deferred-executed.                                         |
| [Map&lt;TResult>(SqlBuilder, Func&lt;DbDataReader, TResult>)][4] | Maps the results of the *query* to TResult objects, using the provided *mapper* delegate.                                   |


Syntax
------

```csharp
public IEnumerable<Object> Map(
	SqlBuilder query
)
```

#### Parameters

##### *query*  [SqlBuilder][5]
The query.

#### Return Value
[IEnumerable][6]&lt;[Object][7]>  
The results of the query as dynamic objects.

See Also
--------

#### Reference
[Database Class][8]  
[DbExtensions Namespace][1]  

[1]: ../README.md
[2]: Map_1.md
[3]: Map__1.md
[4]: Map__1_1.md
[5]: ../SqlBuilder/README.md
[6]: https://learn.microsoft.com/dotnet/api/system.collections.generic.ienumerable-1
[7]: https://learn.microsoft.com/dotnet/api/system.object
[8]: README.md

================================================
FILE: docs/api/DbExtensions/Database/Map_1.md
================================================
Database.Map(SqlBuilder, Type) Method
=====================================
Maps the results of the *query* to objects of type specified by the *resultType* parameter. The query is deferred-executed.
  
**Namespace:** [DbExtensions][1]  
**Assembly:** DbExtensions.dll

Overloads
---------

| Name                                                             | Description                                                                                                                 |
| ---------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- |
| [Map(SqlBuilder)][2]                                             | Maps the results of the *query* to dynamic objects. The query is deferred-executed.                                         |
| **Map(SqlBuilder, Type)**                                        | Maps the results of the *query* to objects of type specified by the *resultType* parameter. The query is deferred-executed. |
| [Map&lt;TResult>(SqlBuilder)][3]                                 | Maps the results of the *query* to TResult objects. The query is deferred-executed.                                         |
| [Map&lt;TResult>(SqlBuilder, Func&lt;DbDataReader, TResult>)][4] | Maps the results of the *query* to TResult objects, using the provided *mapper* delegate.                                   |


Syntax
------

```csharp
public IEnumerable<Object> Map(
	SqlBuilder query,
	Type resultType
)
```

#### Parameters

##### *query*  [SqlBuilder][5]
The query.

##### *resultType*  [Type][6]
The type of objects to map the results to.

#### Return Value
[IEnumerable][7]&lt;[Object][8]>  
The results of the query as objects of type specified by the *resultType* parameter.

See Also
--------

#### Reference
[Database Class][9]  
[DbExtensions Namespace][1]  

[1]: ../README.md
[2]: Map.md
[3]: Map__1.md
[4]: Map__1_1.md
[5]: ../SqlBuilder/README.md
[6]: https://learn.microsoft.com/dotnet/api/system.type
[7]: https://learn.microsoft.com/dotnet/api/system.collections.generic.ienumerable-1
[8]: https://learn.microsoft.com/dotnet/api/system.object
[9]: README.md

================================================
FILE: docs/api/DbExtensions/Database/Map__1.md
================================================
Database.Map&lt;TResult>(SqlBuilder) Method
===========================================
Maps the results of the *query* to TResult objects. The query is deferred-executed.
  
**Namespace:** [DbExtensions][1]  
**Assembly:** DbExtensions.dll

Overloads
---------

| Name                                                             | Description                                                                                                                 |
| ---------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- |
| [Map(SqlBuilder)][2]                                             | Maps the results of the *query* to dynamic objects. The query is deferred-executed.                                         |
| [Map(SqlBuilder, Type)][3]                                       | Maps the results of the *query* to objects of type specified by the *resultType* parameter. The query is deferred-executed. |
| **Map&lt;TResult>(SqlBuilder)**                                  | Maps the results of the *query* to TResult objects. The query is deferred-executed.                                         |
| [Map&lt;TResult>(SqlBuilder, Func&lt;DbDataReader, TResult>)][4] | Maps the results of the *query* to TResult objects, using the provided *mapper* delegate.                                   |


Syntax
------

```csharp
public IEnumerable<TResult> Map<TResult>(
	SqlBuilder query
)

```

#### Parameters

##### *query*  [SqlBuilder][5]
The query.

#### Type Parameters

##### *TResult*
The type of objects to map the results to.

#### Return Value
[IEnumerable][6]&lt;**TResult**>  
The results of the query as TResult objects.

See Also
--------

#### Reference
[Database Class][7]  
[DbExtensions Namespace][1]  

[1]: ../README.md
[2]: Map.md
[3]: Map_1.md
[4]: Map__1_1.md
[5]: ../SqlBuilder/README.md
[6]: https://learn.microsoft.com/dotnet/api/system.collections.generic.ienumerable-1
[7]: README.md

================================================
FILE: docs/api/DbExtensions/Database/Map__1_1.md
================================================
Database.Map&lt;TResult>(SqlBuilder, Func&lt;DbDataReader, TResult>) Method
===========================================================================
Maps the results of the *query* to TResult objects, using the provided *mapper* delegate.
  
**Namespace:** [DbExtensions][1]  
**Assembly:** DbExtensions.dll

Overloads
---------

| Name                                                            | Description                                                                                                                 |
| --------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- |
| [Map(SqlBuilder)][2]                                            | Maps the results of the *query* to dynamic objects. The query is deferred-executed.                                         |
| [Map(SqlBuilder, Type)][3]                                      | Maps the results of the *query* to objects of type specified by the *resultType* parameter. The query is deferred-executed. |
| [Map&lt;TResult>(SqlBuilder)][4]                                | Maps the results of the *query* to TResult objects. The query is deferred-executed.                                         |
| **Map&lt;TResult>(SqlBuilder, Func&lt;DbDataReader, TResult>)** | Maps the results of the *query* to TResult objects, using the provided *mapper* delegate.                                   |


Syntax
------

```csharp
public IEnumerable<TResult> Map<TResult>(
	SqlBuilder query,
	Func<DbDataReader, TResult> mapper
)

```

#### Parameters

##### *query*  [SqlBuilder][5]
The query.

##### *mapper*  [Func][6]&lt;[DbDataReader][7], **TResult**>
The delegate for creating TResult objects from an [DbDataReader][7] object.

#### Type Parameters

##### *TResult*
The type of objects to map the results to.

#### Return Value
[IEnumerable][8]&lt;**TResult**>  
The results of the query as TResult objects.

See Also
--------

#### Reference
[Database Class][9]  
[DbExtensions Namespace][1]  

[1]: ../README.md
[2]: Map.md
[3]: Map_1.md
[4]: Map__1.md
[5]: ../SqlBuilder/README.md
[6]: https://learn.microsoft.com/dotnet/api/system.func-2
[7]: https://learn.microsoft.com/dotnet/api/system.data.common.dbdatareader
[8]: https://learn.microsoft.com/dotnet/api/system.collections.generic.ienumerable-1
[9]: README.md

================================================
FILE: docs/api/DbExtensions/Database/QuoteIdentifier.md
================================================
Database.QuoteIdentifier Method
===============================
Given an unquoted identifier in the correct catalog case, returns the correct quoted form of that identifier.
  
**Namespace:** [DbExtensions][1]  
**Assembly:** DbExtensions.dll

Syntax
------

```csharp
public string QuoteIdentifier(
	string identifier
)
```

#### Parameters

##### *identifier*  [String][2]
The original identifier.

#### Return Value
[String][2]  
The quoted version of the identifier. If the indentifier is already quoted it's returned unchanged.

See Also
--------

#### Reference
[Database Class][3]  
[DbExtensions Namespace][1]  

[1]: ../README.md
[2]: https://learn.microsoft.com/dotnet/api/system.string
[3]: README.md

================================================
FILE: docs/api/DbExtensions/Database/README.md
================================================
Database Class
==============
Provides simple data access using [SqlSet][1], [SqlBuilder][2] and [SqlTable&lt;TEntity>][3].


Inheritance Hierarchy
---------------------
[System.Object][4]  
  **DbExtensions.Database**  
  
**Namespace:** [DbExtensions][5]  
**Assembly:** DbExtensions.dll

Syntax
------

```csharp
public class Database : IDisposable
```

The **Database** type exposes the following members.


Constructors
------------

| Name                          | Description                                                                                                              |
| ----------------------------- | ------------------------------------------------------------------------------------------------------------------------ |
| [Database(DbConnection)][6]   | Initializes a new instance of the **Database** class using the provided connection.                                      |
| [Database(String, String)][7] | Initializes a new instance of the **Database** class using the provided connection string and provider's invariant name. |


Properties
----------

| Name               | Description                                                 |
| ------------------ | ----------------------------------------------------------- |
| [Configuration][8] | Provides access to configuration options for this instance. |
| [Connection][9]    | Gets the connection to associate with new commands.         |
| [Transaction][10]  | Gets or sets a transaction to associate with new commands.  |


Methods
-------

| Name                                                                    | Description                                                                                                                        |
| ----------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- |
| [Add][11]                                                               | Recursively executes INSERT commands for the specified *entity* and all its one-to-one and one-to-many associations.               |
| [AddAsync][12]                                                          | Recursively executes INSERT commands for the specified *entity* and all its one-to-one and one-to-many associations.               |
| [AsyncMap(SqlBuilder)][13]                                              | Maps the results of the *query* to dynamic objects. The query is deferred-executed.                                                |
| [AsyncMap(SqlBuilder, Type)][14]                                        | Maps the results of the *query* to objects of type specified by the *resultType* parameter. The query is deferred-executed.        |
| [AsyncMap&lt;TResult>(SqlBuilder)][15]                                  | Maps the results of the *query* to TResult objects. The query is deferred-executed.                                                |
| [AsyncMap&lt;TResult>(SqlBuilder, Func&lt;DbDataReader, TResult>)][16]  | Maps the results of the *query* to TResult objects, using the provided *mapper* delegate.                                          |
| [CreateCommand][17]                                                     | Creates and returns a [DbCommand][18] object from the specified *sqlBuilder*.                                                      |
| [Dispose()][19]                                                         | Releases all resources used by the current instance of the **Database** class.                                                     |
| [Dispose(Boolean)][20]                                                  | Releases the resources used by this **Database** instance.                                                                         |
| [EnsureConnectionOpen][21]                                              | Opens [Connection][9] (if it's not open) and returns an [IDisposable][22] object you can use to close it (if it wasn't open).      |
| [EnsureConnectionOpenAsync][23]                                         | Opens [Connection][9] (if it's not open) and returns an [IAsyncDisposable][24] object you can use to close it (if it wasn't open). |
| [EnsureInTransaction()][25]                                             | Returns a virtual transaction that you can use to ensure a code block is always executed in a transaction, new or existing.        |
| [EnsureInTransaction(IsolationLevel)][26]                               | Returns a virtual transaction that you can use to ensure a code block is always executed in a transaction, new or existing.        |
| [EnsureInTransactionAsync(CancellationToken)][27]                       | Returns a virtual transaction that you can use to ensure a code block is always executed in a transaction, new or existing.        |
| [EnsureInTransactionAsync(IsolationLevel, CancellationToken)][28]       | Returns a virtual transaction that you can use to ensure a code block is always executed in a transaction, new or existing.        |
| [Execute][29]                                                           | Executes the *nonQuery* command. Optionally uses a transaction and validates affected records value before committing.             |
| [ExecuteAsync][30]                                                      | Executes the *nonQuery* command. Optionally uses a transaction and validates affected records value before committing.             |
| [Find&lt;TEntity>][31]                                                  | Gets the entity whose primary key matches the *id* parameter.                                                                      |
| [FindAsync&lt;TEntity>][32]                                             | Gets the entity whose primary key matches the *id* parameter.                                                                      |
| [From(String)][33]                                                      | Creates and returns a new [SqlSet][1] using the provided table name.                                                               |
| [From(String, Type)][34]                                                | Creates and returns a new [SqlSet][1] using the provided table name.                                                               |
| [From&lt;TResult>(String)][35]                                          | Creates and returns a new [SqlSet&lt;TResult>][36] using the provided table name.                                                  |
| [FromQuery(SqlBuilder)][37]                                             | Creates and returns a new [SqlSet][1] using the provided defining query.                                                           |
| [FromQuery(SqlBuilder, Type)][38]                                       | Creates and returns a new [SqlSet][1] using the provided defining query.                                                           |
| [FromQuery&lt;TResult>(SqlBuilder)][39]                                 | Creates and returns a new [SqlSet&lt;TResult>][36] using the provided defining query.                                              |
| [FromQuery&lt;TResult>(SqlBuilder, Func&lt;DbDataReader, TResult>)][40] | Creates and returns a new [SqlSet&lt;TResult>][36] using the provided defining query and mapper.                                   |
| [LastInsertId][41]                                                      | Gets the identity value of the last inserted record.                                                                               |
| [LastInsertIdAsync][42]                                                 | Gets the identity value of the last inserted record.                                                                               |
| [Map(SqlBuilder)][43]                                                   | Maps the results of the *query* to dynamic objects. The query is deferred-executed.                                                |
| [Map(SqlBuilder, Type)][44]                                             | Maps the results of the *query* to objects of type specified by the *resultType* parameter. The query is deferred-executed.        |
| [Map&lt;TResult>(SqlBuilder)][45]                                       | Maps the results of the *query* to TResult objects. The query is deferred-executed.                                                |
| [Map&lt;TResult>(SqlBuilder, Func&lt;DbDataReader, TResult>)][46]       | Maps the results of the *query* to TResult objects, using the provided *mapper* delegate.                                          |
| [QuoteIdentifier][47]                                                   | Given an unquoted identifier in the correct catalog case, returns the correct quoted form of that identifier.                      |
| [Remove][48]                                                            | Executes a DELETE command for the specified *entity*.                                                                              |
| [RemoveAsync][49]                                                       | Executes a DELETE command for the specified *entity*.                                                                              |
| [Table(Type)][50]                                                       | Returns the [SqlTable][51] instance for the specified *entityType*.                                                                |
| [Table&lt;TEntity>()][52]                                               | Returns the [SqlTable&lt;TEntity>][3] instance for the specified TEntity.                                                          |
| [Update(Object)][53]                                                    | Executes an UPDATE command for the specified *entity*.                                                                             |
| [Update(Object, Object)][54]                                            | Executes an UPDATE command for the specified *entity*.                                                                             |
| [UpdateAsync(Object, CancellationToken)][55]                            | Executes an UPDATE command for the specified *entity*.                                                                             |
| [UpdateAsync(Object, Object, CancellationToken)][56]                    | Executes an UPDATE command for the specified *entity*.                                                                             |


See Also
--------

#### Reference
[DbExtensions Namespace][5]  

[1]: ../SqlSet/README.md
[2]: ../SqlBuilder/README.md
[3]: ../SqlTable_1/README.md
[4]: https://learn.microsoft.com/dotnet/api/system.object
[5]: ../README.md
[6]: _ctor.md
[7]: _ctor_1.md
[8]: Configuration.md
[9]: Connection.md
[10]: Transaction.md
[11]: Add.md
[12]: AddAsync.md
[13]: AsyncMap.md
[14]: AsyncMap_1.md
[15]: AsyncMap__1.md
[16]: AsyncMap__1_1.md
[17]: CreateCommand.md
[18]: https://learn.microsoft.com/dotnet/api/system.data.common.dbcommand
[19]: Dispose.md
[20]: Dispose_1.md
[21]: EnsureConnectionOpen.md
[22]: https://learn.microsoft.com/dotnet/api/system.idisposable
[23]: EnsureConnectionOpenAsync.md
[24]: https://learn.microsoft.com/dotnet/api/system.iasyncdisposable
[25]: EnsureInTransaction.md
[26]: EnsureInTransaction_1.md
[27]: EnsureInTransactionAsync_1.md
[28]: EnsureInTransactionAsync.md
[29]: Execute.md
[30]: ExecuteAsync.md
[31]: Find__1.md
[32]: FindAsync__1.md
[33]: From.md
[34]: From_1.md
[35]: From__1.md
[36]: ../SqlSet_1/README.md
[37]: FromQuery.md
[38]: FromQuery_1.md
[39]: FromQuery__1.md
[40]: FromQuery__1_1.md
[41]: LastInsertId.md
[42]: LastInsertIdAsync.md
[43]: Map.md
[44]: Map_1.md
[45]: Map__1.md
[46]: Map__1_1.md
[47]: QuoteIdentifier.md
[48]: Remove.md
[49]: RemoveAsync.md
[50]: Table.md
[51]: ../SqlTable/README.md
[52]: Table__1.md
[53]: Update.md
[54]: Update_1.md
[55]: UpdateAsync_1.md
[56]: UpdateAsync.md

================================================
FILE: docs/api/DbExtensions/Database/Remove.md
================================================
Database.Remove Method
======================
Executes a DELETE command for the specified *entity*.
  
**Namespace:** [DbExtensions][1]  
**Assembly:** DbExtensions.dll

Syntax
------

```csharp
public bool Remove(
	Object entity
)
```

#### Parameters

##### *entity*  [Object][2]
The entity whose DELETE command is to be executed.

#### Return Value
[Boolean][3]  
`true` if *entity* is deleted; otherwise, `false`.

Remarks
-------
This method is a shortcut for `db.Table(entity.GetType()).Remove(entity)`.

See Also
--------

#### Reference
[Database Class][4]  
[DbExtensions Namespace][1]  
[SqlTable.Remove(Object)][5]  

[1]: ../README.md
[2]: https://learn.microsoft.com/dotnet/api/system.object
[3]: https://learn.microsoft.com/dotnet/api/system.boolean
[4]: README.md
[5]: ../SqlTable/Remove.md

================================================
FILE: docs/api/DbExtensions/Database/RemoveAsync.md
================================================
Database.RemoveAsync Method
===========================
Executes a DELETE command for the specified *entity*.
  
**Namespace:** [DbExtensions][1]  
**Assembly:** DbExtensions.dll

Syntax
------

```csharp
public ValueTask<bool> RemoveAsync(
	Object entity,
	CancellationToken cancellationToken = default
)
```

#### Parameters

##### *entity*  [Object][2]
The entity whose DELETE command is to be executed.

##### *cancellationToken*  [CancellationToken][3]  (Optional)
The [CancellationToken][3] to monitor for cancellation requests. The default is [None][4].

#### Return Value
[ValueTask][5]&lt;[Boolean][6]>  
`true` if *entity* is deleted; otherwise, `false`.

Remarks
-------
This method is a shortcut for `await db.Table(entity.GetType()).RemoveAsync(entity, cancellationToken)`.

See Also
--------

#### Reference
[Database Class][7]  
[DbExtensions Namespace][1]  
[SqlTable.RemoveAsync(Object, CancellationToken)][8]  

[1]: ../README.md
[2]: https://learn.microsoft.com/dotnet/api/system.object
[3]: https://learn.microsoft.com/dotnet/api/system.threading.cancellationtoken
[4]: https://learn.microsoft.com/dotnet/api/system.threading.cancellationtoken.none
[5]: https://learn.microsoft.com/dotnet/api/system.threading.tasks.valuetask-1
[6]: https://learn.microsoft.com/dotnet/api/system.boolean
[7]: README.md
[8]: ../SqlTable/RemoveAsync.md

================================================
FILE: docs/api/DbExtensions/Database/Table.md
================================================
Database.Table(Type) Method
===========================
Returns the [SqlTable][1] instance for the specified *entityType*.
  
**Namespace:** [DbExtensions][2]  
**Assembly:** DbExtensions.dll

Overloads
---------

| Name                     | Description                                                               |
| ------------------------ | ------------------------------------------------------------------------- |
| **Table(Type)**          | Returns the [SqlTable][1] instance for the specified *entityType*.        |
| [Table&lt;TEntity>()][3] | Returns the [SqlTable&lt;TEntity>][4] instance for the specified TEntity. |


Syntax
------

```csharp
public SqlTable Table(
	Type entityType
)
```

#### Parameters

##### *entityType*  [Type][5]
The type of the entity.

#### Return Value
[SqlTable][1]  
The [SqlTable][1] instance for *entityType*.

See Also
--------

#### Reference
[Database Class][6]  
[DbExtensions Namespace][2]  

[1]: ../SqlTable/README.md
[2]: ../README.md
[3]: Table__1.md
[4]: ../SqlTable_1/README.md
[5]: https://learn.microsoft.com/dotnet/api/system.type
[6]: README.md

================================================
FILE: docs/api/DbExtensions/Database/Table__1.md
================================================
Database.Table&lt;TEntity> Method
=================================
Returns the [SqlTable&lt;TEntity>][1] instance for the specified TEntity.
  
**Namespace:** [DbExtensions][2]  
**Assembly:** DbExtensions.dll

Overloads
---------

| Name                    | Description                                                               |
| ----------------------- | ------------------------------------------------------------------------- |
| [Table(Type)][3]        | Returns the [SqlTable][4] instance for the specified *entityType*.        |
| **Table&lt;TEntity>()** | Returns the [SqlTable&lt;TEntity>][1] instance for the specified TEntity. |


Syntax
------

```csharp
public SqlTable<TEntity> Table<TEntity>()
where TEntity : class

```

#### Type Parameters

##### *TEntity*
The type of the entity.

#### Return Value
[SqlTable][1]&lt;**TEntity**>  
The [SqlTable&lt;TEntity>][1] instance for TEntity.

See Also
--------

#### Reference
[Database Class][5]  
[DbExtensions Namespace][2]  

[1]: ../SqlTable_1/README.md
[2]: ../README.md
[3]: Table.md
[4]: ../SqlTable/README.md
[5]: README.md

================================================
FILE: docs/api/DbExtensions/Database/Transaction.md
================================================
Database.Transaction Property
=============================
Gets or sets a transaction to associate with new commands.
  
**Namespace:** [DbExtensions][1]  
**Assembly:** DbExtensions.dll

Syntax
------

```csharp
public DbTransaction? Transaction { get; set; }
```

#### Property Value
[DbTransaction][2]

See Also
--------

#### Reference
[Database Class][3]  
[DbExtensions Namespace][1]  

[1]: ../README.md
[2]: https://learn.microsoft.com/dotnet/api/system.data.common.dbtransaction
[3]: README.md

================================================
FILE: docs/api/DbExtensions/Database/Update.md
================================================
Database.Update(Object) Method
==============================
Executes an UPDATE command for the specified *entity*.
  
**Namespace:** [DbExtensions][1]  
**Assembly:** DbExtensions.dll

Overloads
---------

| Name                        | Description                                            |
| --------------------------- | ------------------------------------------------------ |
| **Update(Object)**          | Executes an UPDATE command for the specified *entity*. |
| [Update(Object, Object)][2] | Executes an UPDATE command for the specified *entity*. |


Syntax
------

```csharp
public void Update(
	Object entity
)
```

#### Parameters

##### *entity*  [Object][3]
The entity whose UPDATE command is to be executed.


Remarks
-------
This method is a shortcut for `db.Table(entity.GetType()).Update(entity)`.

See Also
--------

#### Reference
[Database Class][4]  
[DbExtensions Namespace][1]  
[SqlTable.Update(Object)][5]  

[1]: ../README.md
[2]: Update_1.md
[3]: https://learn.microsoft.com/dotnet/api/system.object
[4]: README.md
[5]: ../SqlTable/Update.md

================================================
FILE: docs/api/DbExtensions/Database/UpdateAsync.md
================================================
Database.UpdateAsync(Object, Object, CancellationToken) Method
==============================================================
Executes an UPDATE command for the specified *entity*.
  
**Namespace:** [DbExtensions][1]  
**Assembly:** DbExtensions.dll

Overloads
---------

| Name                                               | Description                                            |
| -------------------------------------------------- | ------------------------------------------------------ |
| [UpdateAsync(Object, CancellationToken)][2]        | Executes an UPDATE command for the specified *entity*. |
| **UpdateAsync(Object, Object, CancellationToken)** | Executes an UPDATE command for the specified *entity*. |


Syntax
------

```csharp
public ValueTask UpdateAsync(
	Object entity,
	Object? originalId,
	CancellationToken cancellationToken = default
)
```

#### Parameters

##### *entity*  [Object][3]
The entity whose UPDATE command is to be executed.

##### *originalId*  [Object][3]
The original primary key value.

##### *cancellationToken*  [CancellationToken][4]  (Optional)
The [CancellationToken][4] to monitor for cancellation requests. The default is [None][5].

#### Return Value
[ValueTask][6]

Remarks
-------
This method is a shortcut for `await db.Table(entity.GetType()).UpdateAsync(entity, originalId, cancellationToken)`.

See Also
--------

#### Reference
[Database Class][7]  
[DbExtensions Namespace][1]  
[SqlTable.UpdateAsync(Object, Object, CancellationToken)][8]  

[1]: ../README.md
[2]: UpdateAsync_1.md
[3]: https://learn.microsoft.com/dotnet/api/system.object
[4]: https://learn.microsoft.com/dotnet/api/system.threading.cancellationtoken
[5]: https://learn.microsoft.com/dotnet/api/system.threading.cancellationtoken.none
[6]: https://learn.microsoft.com/dotnet/api/system.threading.tasks.valuetask
[7]: README.md
[8]: ../SqlTable/UpdateAsync.md

================================================
FILE: docs/api/DbExtensions/Database/UpdateAsync_1.md
================================================
Database.UpdateAsync(Object, CancellationToken) Method
======================================================
Executes an UPDATE command for the specified *entity*.
  
**Namespace:** [DbExtensions][1]  
**Assembly:** DbExtensions.dll

Overloads
---------

| Name                                                | Description                                            |
| --------------------------------------------------- | ------------------------------------------------------ |
| **UpdateAsync(Object, CancellationToken)**          | Executes an UPDATE command for the specified *entity*. |
| [UpdateAsync(Object, Object, CancellationToken)][2] | Executes an UPDATE command for the specified *entity*. |


Syntax
------

```csharp
public ValueTask UpdateAsync(
	Object entity,
	CancellationToken cancellationToken = default
)
```

#### Parameters

##### *entity*  [Object][3]
The entity whose UPDATE command is to be executed.

##### *cancellationToken*  [CancellationToken][4]  (Optional)
The [CancellationToken][4] to monitor for cancellation requests. The default is [None][5].

#### Return Value
[ValueTask][6]

Remarks
-------
This method is a shortcut for `await db.Table(entity.GetType()).UpdateAsync(entity, cancellationToken)`.

See Also
--------

#### Reference
[Database Class][7]  
[DbExtensions Namespace][1]  
[SqlTable.UpdateAsync(Object, CancellationToken)][8]  

[1]: ../README.md
[2]: UpdateAsync.md
[3]: https://learn.microsoft.com/dotnet/api/system.object
[4]: https://learn.microsoft.com/dotnet/api/system.threading.cancellationtoken
[5]: https://learn.microsoft.com/dotnet/api/system.threading.cancellationtoken.none
[6]: https://learn.microsoft.com/dotnet/api/system.threading.tasks.valuetask
[7]: README.md
[8]: ../SqlTable/UpdateAsync_1.md

================================================
FILE: docs/api/DbExtensions/Database/Update_1.md
================================================
Database.Update(Object, Object) Method
======================================
Executes an UPDATE command for the specified *entity*.
  
**Namespace:** [DbExtensions][1]  
**Assembly:** DbExtensions.dll

Overloads
---------

| Name                       | Description                                            |
| -------------------------- | ------------------------------------------------------ |
| [Update(Object)][2]        | Executes an UPDATE command for the specified *entity*. |
| **Update(Object, Object)** | Executes an UPDATE command for the specified *entity*. |


Syntax
------

```csharp
public void Update(
	Object entity,
	Object? originalId
)
```

#### Parameters

##### *entity*  [Object][3]
The entity whose UPDATE command is to be executed.

##### *originalId*  [Object][3]
The original primary key value.


Remarks
-------
This method is a shortcut for `db.Table(entity.GetType()).Update(entity, originalId)`.

See Also
--------

#### Reference
[Database Class][4]  
[DbExtensions Namespace][1]  
[SqlTable.Update(Object, Object)][5]  

[1]: ../README.md
[2]: Update.md
[3]: https://learn.microsoft.com/dotnet/api/system.object
[4]: README.md
[5]: ../SqlTable/Update_1.md

================================================
FILE: docs/api/DbExtensions/Database/_ctor.md
================================================
Database(DbConnection) Constructor
==================================
Initializes a new instance of the [Database][1] class using the provided connection.
  
**Namespace:** [DbExtensions][2]  
**Assembly:** DbExtensions.dll

Overloads
---------

| Name                          | Description                                                                                                               |
| ----------------------------- | ------------------------------------------------------------------------------------------------------------------------- |
| **Database(DbConnection)**    | Initializes a new instance of the [Database][1] class using the provided connection.                                      |
| [Database(String, String)][3] | Initializes a new instance of the [Database][1] class using the provided connection string and provider's invariant name. |


Syntax
------

```csharp
public Database(
	DbConnection connection
)
```

#### Parameters

##### *connection*  [DbConnection][4]
The connection.


See Also
--------

#### Reference
[Database Class][1]  
[DbExtensions Namespace][2]  

[1]: README.md
[2]: ../README.md
[3]: _ctor_1.md
[4]: https://learn.microsoft.com/dotnet/api/system.data.common.dbconnection

================================================
FILE: docs/api/DbExtensions/Database/_ctor_1.md
================================================
Database(String, String) Constructor
====================================
Initializes a new instance of the [Database][1] class using the provided connection string and provider's invariant name.
  
**Namespace:** [DbExtensions][2]  
**Assembly:** DbExtensions.dll

Overloads
---------

| Name                         | Description                                                                                                               |
| ---------------------------- | ------------------------------------------------------------------------------------------------------------------------- |
| [Database(DbConnection)][3]  | Initializes a new instance of the [Database][1] class using the provided connection.                                      |
| **Database(String, String)** | Initializes a new instance of the [Database][1] class using the provided connection string and provider's invariant name. |


Syntax
------

```csharp
public Database(
	string connectionString,
	string providerInvariantName
)
```

#### Parameters

##### *connectionString*  [String][4]
The connection string.

##### *providerInvariantName*  [String][4]
The provider's invariant name.


See Also
--------

#### Reference
[Database Class][1]  
[DbExtensions Namespace][2]  

[1]: README.md
[2]: ../README.md
[3]: _ctor.md
[4]: https://learn.microsoft.com/dotnet/api/system.string

================================================
FILE: docs/api/DbExtensions/DatabaseConfiguration/CommandTimeout.md
================================================
DatabaseConfiguration.CommandTimeout Property
=============================================
Specifies a timeout to assign to commands. This setting is ignored if less or equal to -1. The default is -1.
  
**Namespace:** [DbExtensions][1]  
**Assembly:** DbExtensions.dll

Syntax
------

```csharp
public int CommandTimeout { get; set; }
```

#### Property Value
[Int32][2]

See Also
--------

#### Reference
[DatabaseConfiguration Class][3]  
[DbExtensions Namespace][1]  

[1]: ../README.md
[2]: https://learn.microsoft.com/dotnet/api/system.int32
[3]: README.md

================================================
FILE: docs/api/DbExtensions/DatabaseConfiguration/DefaultComplexPropertySeparator.md
================================================
DatabaseConfiguration.DefaultComplexPropertySeparator Property
==============================================================
The default separator to use when mapping complex properties. The default value is null, which means no separator is used, unless an explicit separator is specified on [ComplexPropertyAttribute.Separator][1].
  
**Namespace:** [DbExtensions][2]  
**Assembly:** DbExtensions.dll

Syntax
------

```csharp
public string? DefaultComplexPropertySeparator { get; set; }
```

#### Property Value
[String][3]

See Also
--------

#### Reference
[DatabaseConfiguration Class][4]  
[DbExtensions Namespace][2]  

[1]: ../ComplexPropertyAttribute/Separator.md
[2]: ../README.md
[3]: https://learn.microsoft.com/dotnet/api/system.string
[4]: README.md

================================================
FILE: docs/api/DbExtensions/DatabaseConfiguration/EnableBatchCommands.md
================================================
DatabaseConfiguration.EnableBatchCommands Property
==================================================
`true` to execute batch commands when possible; otherwise, `false`. The default is `true`.
  
**Namespace:** [DbExtensions][1]  
**Assembly:** DbExtensions.dll

Syntax
------

```csharp
public bool EnableBatchCommands { get; set; }
```

#### Property Value
[Boolean][2]

Remarks
-------
This setting affects the behavior of [AddRange(TEntity[])][3], [UpdateRange(TEntity[])][4] and [RemoveRange(TEntity[])][5].

See Also
--------

#### Reference
[DatabaseConfiguration Class][6]  
[DbExtensions Namespace][1]  

[1]: ../README.md
[2]: https://learn.microsoft.com/dotnet/api/system.boolean
[3]: ../SqlTable_1/AddRange_1.md
[4]: ../SqlTable_1/UpdateRange_1.md
[5]: ../SqlTable_1/RemoveRange_1.md
[6]: README.md

================================================
FILE: docs/api/DbExtensions/DatabaseConfiguration/LastInsertIdCommand.md
================================================
DatabaseConfiguration.LastInsertIdCommand Property
==================================================
Gets or sets the SQL command that returns the last identity value generated on the database.
  
**Namespace:** [DbExtensions][1]  
**Assembly:** DbExtensions.dll

Syntax
------

```csharp
public string LastInsertIdCommand { get; set; }
```

#### Property Value
[String][2]

See Also
--------

#### Reference
[DatabaseConfiguration Class][3]  
[DbExtensions Namespace][1]  

[1]: ../README.md
[2]: https://learn.microsoft.com/dotnet/api/system.string
[3]: README.md

================================================
FILE: docs/api/DbExtensions/DatabaseConfiguration/Log.md
================================================
DatabaseConfiguration.Log Property
==================================
Specifies the destination to write the SQL query or command.
  
**Namespace:** [DbExtensions][1]  
**Assembly:** DbExtensions.dll

Syntax
------

```csharp
public TextWriter? Log { get; set; }
```

#### Property Value
[TextWriter][2]

See Also
--------

#### Reference
[DatabaseConfiguration Class][3]  
[DbExtensions Namespace][1]  

[1]: ../README.md
[2]: https://learn.microsoft.com/dotnet/api/system.io.textwriter
[3]: README.md

================================================
FILE: docs/api/DbExtensions/DatabaseConfiguration/ParameterNameBuilder.md
================================================
DatabaseConfiguration.ParameterNameBuilder Property
===================================================
Specifies a function that prepares a parameter name to be used on [DbParameter.ParameterName][1].
  
**Namespace:** [DbExtensions][2]  
**Assembly:** DbExtensions.dll

Syntax
------

```csharp
public Func<string, string> ParameterNameBuilder { get; set; }
```

#### Property Value
[Func][3]&lt;[String][4], [String][4]>

See Also
--------

#### Reference
[DatabaseConfiguration Class][5]  
[DbExtensions Namespace][2]  

[1]: https://learn.microsoft.com/dotnet/api/system.data.common.dbparameter.parametername
[2]: ../README.md
[3]: https://learn.microsoft.com/dotnet/api/system.func-2
[4]: https://learn.microsoft.com/dotnet/api/system.string
[5]: README.md

================================================
FILE: docs/api/DbExtensions/DatabaseConfiguration/ParameterPlaceholderBuilder.md
================================================
DatabaseConfiguration.ParameterPlaceholderBuilder Property
==========================================================
Specifies a function that builds a parameter placeholder to be used in SQL statements.
  
**Namespace:** [DbExtensions][1]  
**Assembly:** DbExtensions.dll

Syntax
------

```csharp
public Func<string, string> ParameterPlaceholderBuilder { get; set; }
```

#### Property Value
[Func][2]&lt;[String][3], [String][3]>

See Also
--------

#### Reference
[DatabaseConfiguration Class][4]  
[DbExtensions Namespace][1]  

[1]: ../README.md
[2]: https://learn.microsoft.com/dotnet/api/system.func-2
[3]: https://learn.microsoft.com/dotnet/api/system.string
[4]: README.md

================================================
FILE: docs/api/DbExtensions/DatabaseConfiguration/QuotePrefix.md
================================================
DatabaseConfiguration.QuotePrefix Property
==========================================
Gets or sets the beginning character or characters to use when specifying database objects (for example, tables or columns) whose names contain characters such as spaces or reserved tokens.
  
**Namespace:** [DbExtensions][1]  
**Assembly:** DbExtensions.dll

Syntax
------

```csharp
public string QuotePrefix { get; set; }
```

#### Property Value
[String][2]

See Also
--------

#### Reference
[DatabaseConfiguration Class][3]  
[DbExtensions Namespace][1]  

[1]: ../README.md
[2]: https://learn.microsoft.com/dotnet/api/system.string
[3]: README.md

================================================
FILE: docs/api/DbExtensions/DatabaseConfiguration/QuoteSuffix.md
================================================
DatabaseConfiguration.QuoteSuffix Property
==========================================
Gets or sets the ending character or characters to use when specifying database objects (for example, tables or columns) whose names contain characters such as spaces or reserved tokens.
  
**Namespace:** [DbExtensions][1]  
**Assembly:** DbExtensions.dll

Syntax
------

```csharp
public string QuoteSuffix { get; set; }
```

#### Property Value
[String][2]

See Also
--------

#### Reference
[DatabaseConfiguration Class][3]  
[DbExtensions Namespace][1]  

[1]: ../README.md
[2]: https://learn.microsoft.com/dotnet/api/system.string
[3]: README.md

================================================
FILE: docs/api/DbExtensions/DatabaseConfiguration/README.md
================================================
DatabaseConfiguration Class
===========================
Holds configuration options that customize the behavior of [Database][1]. This class cannot be instantiated, to get an instance use the [Configuration][2] property.


Inheritance Hierarchy
---------------------
[System.Object][3]  
  **DbExtensions.DatabaseConfiguration**  
  
**Namespace:** [DbExtensions][4]  
**Assembly:** DbExtensions.dll

Syntax
------

```csharp
public sealed class DatabaseConfiguration
```

The **DatabaseConfiguration** type exposes the following members.


Properties
----------

| Name                                 | Description                                                                                                                                                                                                      |
| ------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [CommandTimeout][5]                  | Specifies a timeout to assign to commands. This setting is ignored if less or equal to -1. The default is -1.                                                                                                    |
| [DefaultComplexPropertySeparator][6] | The default separator to use when mapping complex properties. The default value is null, which means no separator is used, unless an explicit separator is specified on [ComplexPropertyAttribute.Separator][7]. |
| [EnableBatchCommands][8]             | `true` to execute batch commands when possible; otherwise, `false`. The default is `true`.                                                                                                                       |
| [LastInsertIdCommand][9]             | Gets or sets the SQL command that returns the last identity value generated on the database.                                                                                                                     |
| [Log][10]                            | Specifies the destination to write the SQL query or command.                                                                                                                                                     |
| [ParameterNameBuilder][11]           | Specifies a function that prepares a parameter name to be used on [DbParameter.ParameterName][12].                                                                                                               |
| [ParameterPlaceholderBuilder][13]    | Specifies a function that builds a parameter placeholder to be used in SQL statements.                                                                                                                           |
| [QuotePrefix][14]                    | Gets or sets the beginning character or characters to use when specifying database objects (for example, tables or columns) whose names contain characters such as spaces or reserved tokens.                    |
| [QuoteSuffix][15]                    | Gets or sets the ending character or characters to use when specifying database objects (for example, tables or columns) whose names contain characters such as spaces or reserved tokens.                       |
| [UseVersionMember][16]               | `true` to include version column check in SQL statements' predicates; otherwise, `false`. The default is `true`.                                                                                                 |


See Also
--------

#### Reference
[DbExtensions Namespace][4]  

[1]: ../Database/README.md
[2]: ../Database/Configuration.md
[3]: https://learn.microsoft.com/dotnet/api/system.object
[4]: ../README.md
[5]: CommandTimeout.md
[6]: DefaultComplexPropertySeparator.md
[7]: ../ComplexPropertyAttribute/Separator.md
[8]: EnableBatchCommands.md
[9]: LastInsertIdCommand.md
[10]: Log.md
[11]: ParameterNameBuilder.md
[12]: https://learn.microsoft.com/dotnet/api/system.data.common.dbparameter.parametername
[13]: ParameterPlaceholderBuilder.md
[14]: QuotePrefix.md
[15]: QuoteSuffix.md
[16]: UseVersionMember.md

================================================
FILE: docs/api/DbExtensions/DatabaseConfiguration/UseVersionMember.md
================================================
DatabaseConfiguration.UseVersionMember Property
===============================================
`true` to include version column check in SQL statements' predicates; otherwise, `false`. The default is `true`.
  
**Namespace:** [DbExtensions][1]  
**Assembly:** DbExtensions.dll

Syntax
------

```csharp
public bool UseVersionMember { get; set; }
```

#### Property Value
[Boolean][2]

See Also
--------

#### Reference
[DatabaseConfiguration Class][3]  
[DbExtensions Namespace][1]  

[1]: ../README.md
[2]: https://learn.microsoft.com/dotnet/api/system.boolean
[3]: README.md

================================================
FILE: docs/api/DbExtensions/Extensions/GetBoolean.md
================================================
Extensions.GetBoolean Method
============================
Gets the value of the specified column as a [Boolean][1].
  
**Namespace:** [DbExtensions][2]  
**Assembly:** DbExtensions.dll

Syntax
------

```csharp
public static bool GetBoolean(
	this DbDataReader reader,
	string name
)
```

#### Parameters

##### *reader*  [DbDataReader][3]
The data reader.

##### *name*  [String][4]
The name of the column to find.

#### Return Value
[Boolean][1]  
The value of the column.
#### Usage Note
In Visual Basic and C#, you can call this method as an instance method on any object of type [DbDataReader][3]. When you use instance method syntax to call this method, omit the first parameter. For more information, see [Extension Methods (Visual Basic)][5] or [Extension Methods (C# Programming Guide)][6].

See Also
--------

#### Reference
[Extensions Class][7]  
[DbExtensions Namespace][2]  

[1]: https://learn.microsoft.com/dotnet/api/system.boolean
[2]: ../README.md
[3]: https://learn.microsoft.com/dotnet/api/system.data.common.dbdatareader
[4]: https://learn.microsoft.com/dotnet/api/system.string
[5]: https://docs.microsoft.com/dotnet/visual-basic/programming-guide/language-features/procedures/extension-methods
[6]: https://docs.microsoft.com/dotnet/csharp/programming-guide/classes-and-structs/extension-methods
[7]: README.md

================================================
FILE: docs/api/DbExtensions/Extensions/GetByte.md
================================================
Extensions.GetByte Method
=========================
Gets the value of the specified column as a [Byte][1].
  
**Namespace:** [DbExtensions][2]  
**Assembly:** DbExtensions.dll

Syntax
------

```csharp
public static byte GetByte(
	this DbDataReader reader,
	string name
)
```

#### Parameters

##### *reader*  [DbDataReader][3]
The data reader.

##### *name*  [String][4]
The name of the column to find.

#### Return Value
[Byte][1]  
The value of the column.
#### Usage Note
In Visual Basic and C#, you can call this method as an instance method on any object of type [DbDataReader][3]. When you use instance method syntax to call this method, omit the first parameter. For more information, see [Extension Methods (Visual Basic)][5] or [Extension Methods (C# Programming Guide)][6].

See Also
--------

#### Reference
[Extensions Class][7]  
[DbExtensions Namespace][2]  

[1]: https://learn.microsoft.com/dotnet/api/system.byte
[2]: ../README.md
[3]: https://learn.microsoft.com/dotnet/api/system.data.common.dbdatareader
[4]: https://learn.microsoft.com/dotnet/api/system.string
[5]: https://docs.microsoft.com/dotnet/visual-basic/programming-guide/language-features/procedures/extension-methods
[6]: https://docs.microsoft.com/dotnet/csharp/programming-guide/classes-and-structs/extension-methods
[7]: README.md

================================================
FILE: docs/api/DbExtensions/Extensions/GetChar.md
================================================
Extensions.GetChar Method
=========================
Gets the value of the specified column as a [Char][1].
  
**Namespace:** [DbExtensions][2]  
**Assembly:** DbExtensions.dll

Syntax
------

```csharp
public static char GetChar(
	this DbDataReader reader,
	string name
)
```

#### Parameters

##### *reader*  [DbDataReader][3]
The data reader.

##### *name*  [String][4]
The name of the column to find.

#### Return Value
[Char][1]  
The value of the column.
#### Usage Note
In Visual Basic and C#, you can call this method as an instance method on any object of type [DbDataReader][3]. When you use instance method syntax to call this method, omit the first parameter. For more information, see [Extension Methods (Visual Basic)][5] or [Extension Methods (C# Programming Guide)][6].

See Also
--------

#### Reference
[Extensions Class][7]  
[DbExtensions Namespace][2]  

[1]: https://learn.microsoft.com/dotnet/api/system.char
[2]: ../README.md
[3]: https://learn.microsoft.com/dotnet/api/system.data.common.dbdatareader
[4]: https://learn.microsoft.com/dotnet/api/system.string
[5]: https://docs.microsoft.com/dotnet/visual-basic/programming-guide/language-features/procedures/extension-methods
[6]: https://docs.microsoft.com/dotnet/csharp/programming-guide/classes-and-structs/extension-methods
[7]: README.md

================================================
FILE: docs/api/DbExtensions/Extensions/GetDateTime.md
================================================
Extensions.GetDateTime Method
=============================
Gets the value of the specified column as a [DateTime][1].
  
**Namespace:** [DbExtensions][2]  
**Assembly:** DbExtensions.dll

Syntax
------

```csharp
public static DateTime GetDateTime(
	this DbDataReader reader,
	string name
)
```

#### Parameters

##### *reader*  [DbDataReader][3]
The data reader.

##### *name*  [String][4]
The name of the column to find.

#### Return Value
[DateTime][1]  
The value of the column.
#### Usage Note
In Visual Basic and C#, you can call this method as an instance method on any object of type [DbDataReader][3]. When you use instance method syntax to call this method, omit the first parameter. For more information, see [Extension Methods (Visual Basic)][5] or [Extension Methods (C# Programming Guide)][6].

See Also
--------

#### Reference
[Extensions Class][7]  
[DbExtensions Namespace][2]  

[1]: https://learn.microsoft.com/dotnet/api/system.datetime
[2]: ../README.md
[3]: https://learn.microsoft.com/dotnet/api/system.data.common.dbdatareader
[4]: https://learn.microsoft.com/dotnet/api/system.string
[5]: https://docs.microsoft.com/dotnet/visual-basic/programming-guide/language-features/procedures/extension-methods
[6]: https://docs.microsoft.com/dotnet/csharp/programming-guide/classes-and-structs/extension-methods
[7]: README.md

================================================
FILE: docs/api/DbExtensions/Extensions/GetDecimal.md
================================================
Extensions.GetDecimal Method
============================
Gets the value of the specified column as a [Decimal][1].
  
**Namespace:** [DbExtensions][2]  
**Assembly:** DbExtensions.dll

Syntax
------

```csharp
public static decimal GetDecimal(
	this DbDataReader reader,
	string name
)
```

#### Parameters

##### *reader*  [DbDataReader][3]
The data reader.

##### *name*  [String][4]
The name of the column to find.

#### Return Value
[Decimal][1]  
The value of the column.
#### Usage Note
In Visual Basic and C#, you can call this method as an instance method on any object of type [DbDataReader][3]. When you use instance method syntax to call this method, omit the first parameter. For more information, see [Extension Methods (Visual Basic)][5] or [Extension Methods (C# Programming Guide)][6].

See Also
--------

#### Reference
[Extensions Class][7]  
[DbExtensions Namespace][2]  

[1]: https://learn.microsoft.com/dotnet/api/system.decimal
[2]: ../README.md
[3]: https://learn.microsoft.com/dotnet/api/system.data.common.dbdatareader
[4]: https://learn.microsoft.com/dotnet/api/system.string
[5]: https://docs.microsoft.com/dotnet/visual-basic/programming-guide/language-features/procedures/extension-methods
[6]: https://docs.microsoft.com/dotnet/csharp/programming-guide/classes-and-structs/extension-methods
[7]: README.md

================================================
FILE: docs/api/DbExtensions/Extensions/GetDouble.md
================================================
Extensions.GetDouble Method
===========================
Gets the value of the specified column as a [Double][1].
  
**Namespace:** [DbExtensions][2]  
**Assembly:** DbExtensions.dll

Syntax
------

```csharp
public static double GetDouble(
	this DbDataReader reader,
	string name
)
```

#### Parameters

##### *reader*  [DbDataReader][3]
The data reader.

##### *name*  [String][4]
The name of the column to find.

#### Return Value
[Double][1]  
The value of the column.
#### Usage Note
In Visual Basic and C#, you can call this method as an instance method on any object of type [DbDataReader][3]. When you use instance method syntax to call this method, omit the first parameter. For more information, see [Extension Methods (Visual Basic)][5] or [Extension Methods (C# Programming Guide)][6].

See Also
--------

#### Reference
[Extensions Class][7]  
[DbExtensions Namespace][2]  

[1]: https://learn.microsoft.com/dotnet/api/system.double
[2]: ../README.md
[3]: https://learn.microsoft.com/dotnet/api/system.data.common.dbdatareader
[4]: https://learn.microsoft.com/dotnet/api/system.string
[5]: https://docs.microsoft.com/dotnet/visual-basic/programming-guide/language-features/procedures/extension-methods
[6]: https://docs.microsoft.com/dotnet/csharp/programming-guide/classes-and-structs/extension-methods
[7]: README.md

================================================
FILE: docs/api/DbExtensions/Extensions/GetFloat.md
================================================
Extensions.GetFloat Method
==========================
Gets the value of the specified column as a [Single][1].
  
**Namespace:** [DbExtensions][2]  
**Assembly:** DbExtensions.dll

Syntax
------

```csharp
public static float GetFloat(
	this DbDataReader reader,
	string name
)
```

#### Parameters

##### *reader*  [DbDataReader][3]
The data reader.

##### *name*  [String][4]
The name of the column to find.

#### Return Value
[Single][1]  
The value of the column.
#### Usage Note
In Visual Basic and C#, you can call this method as an instance method on any object of type [DbDataReader][3]. When you use instance method syntax to call this method, omit the first parameter. For more information, see [Extension Methods (Visual Basic)][5] or [Extension Methods (C# Programming Guide)][6].

See Also
--------

#### Reference
[Extensions Class][7]  
[DbExtensions Namespace][2]  

[1]: https://learn.microsoft.com/dotnet/api/system.single
[2]: ../README.md
[3]: https://learn.microsoft.com/dotnet/api/system.data.common.dbdatareader
[4]: https://learn.microsoft.com/dotnet/api/system.string
[5]: https://docs.microsoft.com/dotnet/visual-basic/programming-guide/language-features/procedures/extension-methods
[6]: https://docs.microsoft.com/dotnet/csharp/programming-guide/classes-and-structs/extension-methods
[7]: README.md

================================================
FILE: docs/api/DbExtensions/Extensions/GetInt16.md
================================================
Extensions.GetInt16 Method
==========================
Gets the value of the specified column as an [Int16][1].
  
**Namespace:** [DbExtensions][2]  
**Assembly:** DbExtensions.dll

Syntax
------

```csharp
public static short GetInt16(
	this DbDataReader reader,
	string name
)
```

#### Parameters

##### *reader*  [DbDataReader][3]
The data reader.

##### *name*  [String][4]
The name of the column to find.

#### Return Value
[Int16][1]  
The value of the column.
#### Usage Note
In Visual Basic and C#, you can call this method as an instance method on any object of type [DbDataReader][3]. When you use instance method syntax to call this method, omit the first parameter. For more information, see [Extension Methods (Visual Basic)][5] or [Extension Methods (C# Programming Guide)][6].

See Also
--------

#### Reference
[Extensions Class][7]  
[DbExtensions Namespace][2]  

[1]: https://learn.microsoft.com/dotnet/api/system.int16
[2]: ../README.md
[3]: https://learn.microsoft.com/dotnet/api/system.data.common.dbdatareader
[4]: https://learn.microsoft.com/dotnet/api/system.string
[5]: https://docs.microsoft.com/dotnet/visual-basic/programming-guide/language-features/procedures/extension-methods
[6]: https://docs.microsoft.com/dotnet/csharp/programming-guide/classes-and-structs/extension-methods
[7]: README.md

================================================
FILE: docs/api/DbExtensions/Extensions/GetInt32.md
================================================
Extensions.GetInt32 Method
==========================
Gets the value of the specified column as an [Int32][1].
  
**Namespace:** [DbExtensions][2]  
**Assembly:** DbExtensions.dll

Syntax
------

```csharp
public static int GetInt32(
	this DbDataReader reader,
	string name
)
```

#### Parameters

##### *reader*  [DbDataReader][3]
The data reader.

##### *name*  [String][4]
The name of the column to find.

#### Return Value
[Int32][1]  
The value of the column.
#### Usage Note
In Visual Basic and C#, you can call this method as an instance method on any object of type [DbDataReader][3]. When you use instance method syntax to call this method, omit the first parameter. For more information, see [Extension Methods (Visual Basic)][5] or [Extension Methods (C# Programming Guide)][6].

See Also
--------

#### Reference
[Extensions Class][7]  
[DbExtensions Namespace][2]  

[1]: https://learn.microsoft.com/dotnet/api/system.int32
[2]: ../README.md
[3]: https://learn.microsoft.com/dotnet/api/system.data.common.dbdatareader
[4]: https://learn.microsoft.com/dotnet/api/system.string
[5]: https://docs.microsoft.com/dotnet/visual-basic/programming-guide/language-features/procedures/extension-methods
[6]: https://docs.microsoft.com/dotnet/csharp/programming-guide/classes-and-structs/extension-methods
[7]: README.md

================================================
FILE: docs/api/DbExtensions/Extensions/GetInt64.md
================================================
Extensions.GetInt64 Method
==========================
Gets the value of the specified column as an [Int64][1].
  
**Namespace:** [DbExtensions][2]  
**Assembly:** DbExtensions.dll

Syntax
------

```csharp
public static long GetInt64(
	this DbDataReader reader,
	string name
)
```

#### Parameters

##### *reader*  [DbDataReader][3]
The data reader.

##### *name*  [String][4]
The name of the column to find.

#### Return Value
[Int64][1]  
The value of the column.
#### Usage Note
In Visual Basic and C#, you can call this method as an instance method on any object of type [DbDataReader][3]. When you use instance method syntax to call this method, omit the first parameter. For more information, see [Extension Methods (Visual Basic)][5] or [Extension Methods (C# Programming Guide)][6].

See Also
--------

#### Reference
[Extensions Class][7]  
[DbExtensions Namespace][2]  

[1]: https://learn.microsoft.com/dotnet/api/system.int64
[2]: ../README.md
[3]: https://learn.microsoft.com/dotnet/api/system.data.common.dbdatareader
[4]: https://learn.microsoft.com/dotnet/api/system.string
[5]: https://docs.microsoft.com/dotnet/visual-basic/programming-guide/language-features/procedures/extension-methods
[6]: https://docs.microsoft.com/dotnet/csharp/programming-guide/classes-and-structs/extension-methods
[7]: README.md

================================================
FILE: docs/api/DbExtensions/Extensions/GetNullableBoolean.md
================================================
Extensions.GetNullableBoolean(DbDataReader, Int32) Method
=========================================================
Gets the value of the specified column as a [Nullable&lt;T>][1] of [Boolean][2].
  
**Namespace:** [DbExtensions][3]  
**Assembly:** DbExtensions.dll

Overloads
---------

| Name                                          | Description                                                                      |
| --------------------------------------------- | -------------------------------------------------------------------------------- |
| **GetNullableBoolean(DbDataReader, Int32)**   | Gets the value of the specified column as a [Nullable&lt;T>][1] of [Boolean][2]. |
| [GetNullableBoolean(DbDataReader, String)][4] | Gets the value of the specified column as a [Nullable&lt;T>][1] of [Boolean][2]. |


Syntax
------

```csharp
public static bool? GetNullableBoolean(
	this DbDataReader reader,
	int i
)
```

#### Parameters

##### *reader*  [DbDataReader][5]
The data reader.

##### *i*  [Int32][6]
The zero-based column ordinal.

#### Return Value
[Nullable][1]&lt;[Boolean][2]>  
The value of the column.
#### Usage Note
In Visual Basic and C#, you can call this method as an instance method on any object of type [DbDataReader][5]. When you use instance method syntax to call this method, omit the first parameter. For more information, see [Extension Methods (Visual Basic)][7] or [Extension Methods (C# Programming Guide)][8].

See Also
--------

#### Reference
[Extensions Class][9]  
[DbExtensions Namespace][3]  

[1]: https://learn.microsoft.com/dotnet/api/system.nullable-1
[2]: https://learn.microsoft.com/dotnet/api/system.boolean
[3]: ../README.md
[4]: GetNullableBoolean_1.md
[5]: https://learn.microsoft.com/dotnet/api/system.data.common.dbdatareader
[6]: https://learn.microsoft.com/dotnet/api/system.int32
[7]: https://docs.microsoft.com/dotnet/visual-basic/programming-guide/language-features/procedures/extension-methods
[8]: https://docs.microsoft.com/dotnet/csharp/programming-guide/classes-and-structs/extension-methods
[9]: README.md

================================================
FILE: docs/api/DbExtensions/Extensions/GetNullableBoolean_1.md
================================================
Extensions.GetNullableBoolean(DbDataReader, String) Method
==========================================================
Gets the value of the specified column as a [Nullable&lt;T>][1] of [Boolean][2].
  
**Namespace:** [DbExtensions][3]  
**Assembly:** DbExtensions.dll

Overloads
---------

| Name                                         | Description                                                                      |
| -------------------------------------------- | -------------------------------------------------------------------------------- |
| [GetNullableBoolean(DbDataReader, Int32)][4] | Gets the value of the specified column as a [Nullable&lt;T>][1] of [Boolean][2]. |
| **GetNullableBoolean(DbDataReader, String)** | Gets the value of the specified column as a [Nullable&lt;T>][1] of [Boolean][2]. |


Syntax
------

```csharp
public static bool? GetNullableBoolean(
	this DbDataReader reader,
	string name
)
```

#### Parameters

##### *reader*  [DbDataReader][5]
The data reader.

##### *name*  [String][6]
The name of the column to find.

#### Return Value
[Nullable][1]&lt;[Boolean][2]>  
The value of the column.
#### Usage Note
In Visual Basic and C#, you can call this method as an instance method on any object of type [DbDataReader][5]. When you use instance method syntax to call this method, omit the first parameter. For more information, see [Extension Methods (Visual Basic)][7] or [Extension Methods (C# Programming Guide)][8].

See Also
--------

#### Reference
[Extensions Class][9]  
[DbExtensions Namespace][3]  

[1]: https://learn.microsoft.com/dotnet/api/system.nullable-1
[2]: https://learn.microsoft.com/dotnet/api/system.boolean
[3]: ../README.md
[4]: GetNullableBoolean.md
[5]: https://learn.microsoft.com/dotnet/api/system.data.common.dbdatareader
[6]: https://learn.microsoft.com/dotnet/api/system.string
[7]: https://docs.microsoft.com/dotnet/visual-basic/programming-guide/language-features/procedures/extension-methods
[8]: https://docs.microsoft.com/dotnet/csharp/programming-guide/classes-and-structs/extension-methods
[9]: README.md

================================================
FILE: docs/api/DbExtensions/Extensions/GetNullableByte.md
================================================
Extensions.GetNullableByte(DbDataReader, Int32) Method
======================================================
Gets the value of the specified column as a [Nullable&lt;T>][1] of [Byte][2].
  
**Namespace:** [DbExtensions][3]  
**Assembly:** DbExtensions.dll

Overloads
---------

| Name                                       | Description                                                                   |
| ------------------------------------------ | ----------------------------------------------------------------------------- |
| **GetNullableByte(DbDataReader, Int32)**   | Gets the value of the specified column as a [Nullable&lt;T>][1] of [Byte][2]. |
| [GetNullableByte(DbDataReader, String)][4] | Gets the value of the specified column as a [Nullable&lt;T>][1] of [Byte][2]. |


Syntax
------

```csharp
public static byte? GetNullableByte(
	this DbDataReader reader,
	int i
)
```

#### Parameters

##### *reader*  [DbDataReader][5]
The data reader.

##### *i*  [Int32][6]
The zero-based column ordinal.

#### Return Value
[Nullable][1]&lt;[Byte][2]>  
The value of the column.
#### Usage Note
In Visual Basic and C#, you can call this method as an instance method on any object of type [DbDataReader][5]. When you use instance method syntax to call this method, omit the first parameter. For more information, see [Extension Methods (Visual Basic)][7] or [Extension Methods (C# Programming Guide)][8].

See Also
--------

#### Reference
[Extensions Class][9]  
[DbExtensions Namespace][3]  

[1]: https://learn.microsoft.com/dotnet/api/system.nullable-1
[2]: https://learn.microsoft.com/dotnet/api/system.byte
[3]: ../README.md
[4]: GetNullableByte_1.md
[5]: https://learn.microsoft.com/dotnet/api/system.data.common.dbdatareader
[6]: https://learn.microsoft.com/dotnet/api/system.int32
[7]: https://docs.microsoft.com/dotnet/visual-basic/programming-guide/language-features/procedures/extension-methods
[8]: https://docs.microsoft.com/dotnet/csharp/programming-guide/classes-and-structs/extension-methods
[9]: README.md

================================================
FILE: docs/api/DbExtensions/Extensions/GetNullableByte_1.md
================================================
Extensions.GetNullableByte(DbDataReader, String) Method
=======================================================
Gets the value of the specified column as a [Nullable&lt;T>][1] of [Byte][2].
  
**Namespace:** [DbExtensions][3]  
**Assembly:** DbExtensions.dll

Overloads
---------

| Name                                      | Description                                                                   |
| ----------------------------------------- | ----------------------------------------------------------------------------- |
| [GetNullableByte(DbDataReader, Int32)][4] | Gets the value of the specified column as a [Nullable&lt;T>][1] of [Byte][2]. |
| **GetNullableByte(DbDataReader, String)** | Gets the value of the specified column as a [Nullable&lt;T>][1] of [Byte][2]. |


Syntax
------

```csharp
public static byte? GetNullableByte(
	this DbDataReader reader,
	string name
)
```

#### Parameters

##### *reader*  [DbDataReader][5]
The data reader.

##### *name*  [String][6]
The name of the column to find.

#### Return Value
[Nullable][1]&lt;[Byte][2]>  
The value of the column.
#### Usage Note
In Visual Basic and C#, you can call this method as an instance method on any object of type [DbDataReader][5]. When you use instance method syntax to call this method, omit the first parameter. For more information, see [Extension Methods (Visual Basic)][7] or [Extension Methods (C# Programming Guide)][8].

See Also
--------

#### Reference
[Extensions Class][9]  
[DbExtensions Namespace][3]  

[1]: https://learn.microsoft.com/dotnet/api/system.nullable-1
[2]: https://learn.microsoft.com/dotnet/api/system.byte
[3]: ../README.md
[4]: GetNullableByte.md
[5]: https://learn.microsoft.com/dotnet/api/system.data.common.dbdatareader
[6]: https://learn.microsoft.com/dotnet/api/system.string
[7]: https://docs.microsoft.com/dotnet/visual-basic/programming-guide/language-features/procedures/extension-methods
[8]: https://docs.microsoft.com/dotnet/csharp/programming-guide/classes-and-structs/extension-methods
[9]: README.md

================================================
FILE: docs/api/DbExtensions/Extensions/GetNullableChar.md
================================================
Extensions.GetNullableChar(DbDataReader, Int32) Method
======================================================
Gets the value of the specified column as a [Nullable&lt;T>][1] of [Char][2].
  
**Namespace:** [DbExtensions][3]  
**Assembly:** DbExtensions.dll

Overloads
---------

| Name                                       | Description                                                                   |
| ------------------------------------------ | ----------------------------------------------------------------------------- |
| **GetNullableChar(DbDataReader, Int32)**   | Gets the value of the specified column as a [Nullable&lt;T>][1] of [Char][2]. |
| [GetNullableChar(DbDataReader, String)][4] | Gets the value of the specified column as a [Nullable&lt;T>][1] of [Char][2]. |


Syntax
------

```csharp
public static char? GetNullableChar(
	this DbDataReader reader,
	int i
)
```

#### Parameters

##### *reader*  [DbDataReader][5]
The data reader.

##### *i*  [Int32][6]
The zero-based column ordinal.

#### Return Value
[Nullable][1]&lt;[Char][2]>  
The value of the column.
#### Usage Note
In Visual Basic and C#, you can call this method as an instance method on any object of type [DbDataReader][5]. When you use instance method syntax to call this method, omit the first parameter. For more information, see [Extension Methods (Visual Basic)][7] or [Extension Methods (C# Programming Guide)][8].

See Also
--------

#### Reference
[Extensions Class][9]  
[DbExtensions Namespace][3]  

[1]: https://learn.microsoft.com/dotnet/api/system.nullable-1
[2]: https://learn.microsoft.com/dotnet/api/system.char
[3]: ../README.md
[4]: GetNullableChar_1.md
[5]: https://learn.microsoft.com/dotnet/api/system.data.common.dbdatareader
[6]: https://learn.microsoft.com/dotnet/api/system.int32
[7]: https://docs.microsoft.com/dotnet/visual-basic/programming-guide/language-features/procedures/extension-methods
[8]: https://docs.microsoft.com/dotnet/csharp/programming-guide/classes-and-structs/extension-methods
[9]: README.md

================================================
FILE: docs/api/DbExtensions/Extensions/GetNullableChar_1.md
================================================
Extensions.GetNullableChar(DbDataReader, String) Method
=======================================================
Gets the value of the specified column as a [Nullable&lt;T>][1] of [Char][2].
  
**Namespace:** [DbExtensions][3]  
**Assembly:** DbExtensions.dll

Overloads
---------

| Name                                      | Description                                                                   |
| ----------------------------------------- | ----------------------------------------------------------------------------- |
| [GetNullableChar(DbDataReader, Int32)][4] | Gets the value of the specified column as a [Nullable&lt;T>][1] of [Char][2]. |
| **GetNullableChar(DbDataReader, String)** | Gets the value of the specified column as a [Nullable&lt;T>][1] of [Char][2]. |


Syntax
------

```csharp
public static char? GetNullableChar(
	this DbDataReader reader,
	string name
)
```

#### Parameters

##### *reader*  [DbDataReader][5]
The data reader.

##### *name*  [String][6]
The name of the column to find.

#### Return Value
[Nullable][1]&lt;[Char][2]>  
The value of the column.
#### Usage Note
In Visual Basic and C#, you can call this method as an instance method on any object of type [DbDataReader][5]. When you use instance method syntax to call this method, omit the first parameter. For more information, see [Extension Methods (Visual Basic)][7] or [Extension Methods (C# Programming Guide)][8].

See Also
--------

#### Reference
[Extensions Class][9]  
[DbExtensions Namespace][3]  

[1]: https://learn.microsoft.com/dotnet/api/system.nullable-1
[2]: https://learn.microsoft.com/dotnet/api/system.char
[3]: ../README.md
[4]: GetNullableChar.md
[5]: https://learn.microsoft.com/dotnet/api/system.data.common.dbdatareader
[6]: https://learn.microsoft.com/dotnet/api/system.string
[7]: https://docs.microsoft.com/dotnet/visual-basic/programming-guide/language-features/procedures/extension-methods
[8]: https://docs.microsoft.com/dotnet/csharp/programming-guide/classes-and-structs/extension-methods
[9]: README.md

================================================
FILE: docs/api/DbExtensions/Extensions/GetNullableDateTime.md
================================================
Extensions.GetNullableDateTime(DbDataReader, Int32) Method
==========================================================
Gets the value of the specified column as a [Nullable&lt;T>][1] of [DateTime][2].
  
**Namespace:** [DbExtensions][3]  
**Assembly:** DbExtensions.dll

Overloads
---------

| Name                                           | Description                                                                       |
| ---------------------------------------------- | --------------------------------------------------------------------------------- |
| **GetNullableDateTime(DbDataReader, Int32)**   | Gets the value of the specified column as a [Nullable&lt;T>][1] of [DateTime][2]. |
| [GetNullableDateTime(DbDataReader, String)][4] | Gets the value of the specified column as a [Nullable&lt;T>][1] of [DateTime][2]. |


Syntax
------

```csharp
public static DateTime? GetNullableDateTime(
	this DbDataReader reader,
	int i
)
```

#### Parameters

##### *reader*  [DbDataReader][5]
The data reader.

##### *i*  [Int32][6]
The zero-based column ordinal.

#### Return Value
[Nullable][1]&lt;[DateTime][2]>  
The value of the column.
#### Usage Note
In Visual Basic and C#, you can call this method as an instance method on any object of type [DbDataReader][5]. When you use instance method syntax to call this method, omit the first parameter. For more information, see [Extension Methods (Visual Basic)][7] or [Extension Methods (C# Programming Guide)][8].

See Also
--------

#### Reference
[Extensions Class][9]  
[DbExtensions Namespace][3]  

[1]: https://learn.microsoft.com/dotnet/api/system.nullable-1
[2]: https://learn.microsoft.com/dotnet/api/system.datetime
[3]: ../README.md
[4]: GetNullableDateTime_1.md
[5]: https://learn.microsoft.com/dotnet/api/system.data.common.dbdatareader
[6]: https://learn.microsoft.com/dotnet/api/system.int32
[7]: https://docs.microsoft.com/dotnet/visual-basic/programming-guide/language-features/procedures/extension-methods
[8]: https://docs.microsoft.com/dotnet/csharp/programming-guide/classes-and-structs/extension-methods
[9]: README.md

================================================
FILE: docs/api/DbExtensions/Extensions/GetNullableDateTime_1.md
================================================
Extensions.GetNullableDateTime(DbDataReader, String) Method
===========================================================
Gets the value of the specified column as a [Nullable&lt;T>][1] of [DateTime][2].
  
**Namespace:** [DbExtensions][3]  
**Assembly:** DbExtensions.dll

Overloads
---------

| Name                                          | Description                                                                       |
| --------------------------------------------- | --------------------------------------------------------------------------------- |
| [GetNullableDateTime(DbDataReader, Int32)][4] | Gets the value of the specified column as a [Nullable&lt;T>][1] of [DateTime][2]. |
| **GetNullableDateTime(DbDataReader, String)** | Gets the value of the specified column as a [Nullable&lt;T>][1] of [DateTime][2]. |


Syntax
------

```csharp
public static DateTime? GetNullableDateTime(
	this DbDataReader reader,
	string name
)
```

#### Parameters

##### *reader*  [DbDataReader][5]
The data reader.

##### *name*  [String][6]
The name of the column to find.

#### Return Value
[Nullable][1]&lt;[DateTime][2]>  
The value of the column.
#### Usage Note
In Visual Basic and C#, you can call this method as an instance method on any object of type [DbDataReader][5]. When you use instance method syntax to call this method, omit the first parameter. For more information, see [Extension Methods (Visual Basic)][7] or [Extension Methods (C# Programming Guide)][8].

See Also
--------

#### Reference
[Extensions Class][9]  
[DbExtensions Namespace][3]  

[1]: https://learn.microsoft.com/dotnet/api/system.nullable-1
[2]: https://learn.microsoft.com/dotnet/api/system.datetime
[3]: ../README.md
[4]: GetNullableDateTime.md
[5]: https://learn.microsoft.com/dotnet/api/system.data.common.dbdatareader
[6]: https://learn.microsoft.com/dotnet/api/system.string
[7]: https://docs.microsoft.com/dotnet/visual-basic/programming-guide/language-features/procedures/extension-methods
[8]: https://docs.microsoft.com/dotnet/csharp/programming-guide/classes-and-structs/extension-methods
[9]: README.md

================================================
FILE: docs/api/DbExtensions/Extensions/GetNullableDecimal.md
================================================
Extensions.GetNullableDecimal(DbDataReader, Int32) Method
=========================================================
Gets the value of the specified column as a [Nullable&lt;T>][1] of [Decimal][2].
  
**Namespace:** [DbExtensions][3]  
**Assembly:** DbExtensions.dll

Overloads
---------

| Name                                          | Description                                                                      |
| --------------------------------------------- | -------------------------------------------------------------------------------- |
| **GetNullableDecimal(DbDataReader, Int32)**   | Gets the value of the specified column as a [Nullable&lt;T>][1] of [Decimal][2]. |
| [GetNullableDecimal(DbDataReader, String)][4] | Gets the value of the specified column as a [Nullable&lt;T>][1] of [Decimal][2]. |


Syntax
------

```csharp
public static decimal? GetNullableDecimal(
	this DbDataReader reader,
	int i
)
```

#### Parameters

##### *reader*  [DbDataReader][5]
The data reader.

##### *i*  [Int32][6]
The zero-based column ordinal.

#### Return Value
[Nullable][1]&lt;[Decimal][2]>  
The value of the column.
#### Usage Note
In Visual Basic and C#, you can call this method as an instance method on any object of type [DbDataReader][5]. When you use instance method syntax to call this method, omit the first parameter. For more information, see [Extension Methods (Visual Basic)][7] or [Extension Methods (C# Programming Guide)][8].

See Also
--------

#### Reference
[Extensions Class][9]  
[DbExtensions Namespace][3]  

[1]: https://learn.microsoft.com/dotnet/api/system.nullable-1
[2]: https://learn.microsoft.com/dotnet/api/system.decimal
[3]: ../README.md
[4]: GetNullableDecimal_1.md
[5]: https://learn.microsoft.com/dotnet/api/system.data.common.dbdatareader
[6]: https://learn.microsoft.com/dotnet/api/system.int32
[7]: https://docs.microsoft.com/dotnet/visual-basic/programming-guide/language-features/procedures/extension-methods
[8]: https://docs.microsoft.com/dotnet/csharp/programming-guide/classes-and-structs/extension-methods
[9]: README.md

================================================
FILE: docs/api/DbExtensions/Extensions/GetNullableDecimal_1.md
================================================
Extensions.GetNullableDecimal(DbDataReader, String) Method
==========================================================
Gets the value of the specified column as a [Nullable&lt;T>][1] of [Decimal][2].
  
**Namespace:** [DbExtensions][3]  
**Assembly:** DbExtensions.dll

Overloads
---------

| Name                                         | Description                                                                      |
| -------------------------------------------- | -------------------------------------------------------------------------------- |
| [GetNullableDecimal(DbDataReader, Int32)][4] | Gets the value of the specified column as a [Nullable&lt;T>][1] of [Decimal][2]. |
| **GetNullableDecimal(DbDataReader, String)** | Gets the value of the specified column as a [Nullable&lt;T>][1] of [Decimal][2]. |


Syntax
------

```csharp
public static decimal? GetNullableDecimal(
	this DbDataReader reader,
	string name
)
```

#### Parameters

##### *reader*  [DbDataReader][5]
The data reader.

##### *name*  [String][6]
The name of the column to find.

#### Return Value
[Nullable][1]&lt;[Decimal][2]>  
The value of the column.
#### Usage Note
In Visual Basic and C#, you can call this method as an instance method on any object of type [DbDataReader][5]. When you use instance method syntax to call this method, omit the first parameter. For more information, see [Extension Methods (Visual Basic)][7] or [Extension Methods (C# Programming Guide)][8].

See Also
--------

#### Reference
[Extensions Class][9]  
[DbExtensions Namespace][3]  

[1]: https://learn.microsoft.com/dotnet/api/system.nullable-1
[2]: https://learn.microsoft.com/dotnet/api/system.decimal
[3]: ../README.md
[4]: GetNullableDecimal.md
[5]: https://learn.microsoft.com/dotnet/api/system.data.common.dbdatareader
[6]: https://learn.microsoft.com/dotnet/api/system.string
[7]: https://docs.microsoft.com/dotnet/visual-basic/programming-guide/language-features/procedures/extension-methods
[8]: https://docs.microsoft.com/dotnet/csharp/programming-guide/classes-and-structs/extension-methods
[9]: README.md

================================================
FILE: docs/api/DbExtensions/Extensions/GetNullableDouble.md
================================================
Extensions.GetNullableDouble(DbDataReader, Int32) Method
========================================================
Gets the value of the specified column as a [Nullable&lt;T>][1] of [Double][2].
  
**Namespace:** [DbExtensions][3]  
**Assembly:** DbExtensions.dll

Overloads
---------

| Name                                         | Description                                                                     |
| -------------------------------------------- | ------------------------------------------------------------------------------- |
| **GetNullableDouble(DbDataReader, Int32)**   | Gets the value of the specified column as a [Nullable&lt;T>][1] of [Double][2]. |
| [GetNullableDouble(DbDataReader, String)][4] | Gets the value of the specified column as a [Nullable&lt;T>][1] of [Double][2]. |


Syntax
------

```csharp
public static double? GetNullableDouble(
	this DbDataReader reader,
	int i
)
```

#### Parameters

##### *reader*  [DbDataReader][5]
The data reader.

##### *i*  [Int32][6]
The zero-based column ordinal.

#### Return Value
[Nullable][1]&lt;[Double][2]>  
The value of the column.
#### Usage Note
In Visual Basic and C#, you can call this method as an instance method on any object of type [DbDataReader][5]. When you use instance method syntax to call this method, omit the first parameter. For more information, see [Extension Methods (Visual Basic)][7] or [Extension Methods (C# Programming Guide)][8].

See Also
--------

#### Reference
[Extensions Class][9]  
[DbExtensions Namespace][3]  

[1]: https://learn.microsoft.com/dotnet/api/system.nullable-1
[2]: https://learn.microsoft.com/dotnet/api/system.double
[3]: ../README.md
[4]: GetNullableDouble_1.md
[5]: https://learn.microsoft.com/dotnet/api/system.data.common.dbdatareader
[6]: https://learn.microsoft.com/dotnet/api/system.int32
[7]: https://docs.microsoft.com/dotnet/visual-basic/programming-guide/language-features/procedures/extension-methods
[8]: https://docs.microsoft.com/dotnet/csharp/programming-guide/classes-and-structs/extension-methods
[9]: README.md

================================================
FILE: docs/api/DbExtensions/Extensions/GetNullableDouble_1.md
================================================
Extensions.GetNullableDouble(DbDataReader, String) Method
=========================================================
Gets the value of the specified column as a [Nullable&lt;T>][1] of [Double][2].
  
**Namespace:** [DbExtensions][3]  
**Assembly:** DbExtensions.dll

Overloads
---------

| Name                                        | Description                                                                     |
| ------------------------------------------- | ------------------------------------------------------------------------------- |
| [GetNullableDouble(DbDataReader, Int32)][4] | Gets the value of the specified column as a [Nullable&lt;T>][1] of [Double][2]. |
| **GetNullableDouble(DbDataReader, String)** | Gets the value of the specified column as a [Nullable&lt;T>][1] of [Double][2]. |


Syntax
------

```csharp
public static double? GetNullableDouble(
	this DbDataReader reader,
	string name
)
```

#### Parameters

##### *reader*  [DbDataReader][5]
The data reader.

##### *name*  [String][6]
The name of the column to find.

#### Return Value
[Nullable][1]&lt;[Double][2]>  
The value of the column.
#### Usage Note
In Visual Basic and C#, you can call this method as an instance method on any object of type [DbDataReader][5]. When you use instance method syntax to call this method, omit the first parameter. For more information, see [Extension Methods (Visual Basic)][7] or [Extension Methods (C# Programming Guide)][8].

See Also
--------

#### Reference
[Extensions Class][9]  
[DbExtensions Namespace][3]  

[1]: https://learn.microsoft.com/dotnet/api/system.nullable-1
[2]: https://learn.microsoft.com/dotnet/api/system.double
[3]: ../README.md
[4]: GetNullableDouble.md
[5]: https://learn.microsoft.com/dotnet/api/system.data.common.dbdatareader
[6]: https://learn.microsoft.com/dotnet/api/system.string
[7]: https://docs.microsoft.com/dotnet/visual-basic/programming-guide/language-features/procedures/extension-methods
[8]: https://docs.microsoft.com/dotnet/csharp/programming-guide/classes-and-structs/extension-methods
[9]: README.md

================================================
FILE: docs/api/DbExtensions/Extensions/GetNullableFloat.md
================================================
Extensions.GetNullableFloat(DbDataReader, Int32) Method
=======================================================
Gets the value of the specified column as a [Nullable&lt;T>][1] of [Single][2].
  
**Namespace:** [DbExtensions][3]  
**Assembly:** DbExtensions.dll

Overloads
---------

| Name                                        | Description                                                                     |
| ------------------------------------------- | ------------------------------------------------------------------------------- |
| **GetNullableFloat(DbDataReader, Int32)**   | Gets the value of the specified column as a [Nullable&lt;T>][1] of [Single][2]. |
| [GetNullableFloat(DbDataReader, String)][4] | Gets the value of the specified column as a [Nullable&lt;T>][1] of [Single][2]. |


Syntax
------

```csharp
public static float? GetNullableFloat(
	this DbDataReader reader,
	int i
)
```

#### Parameters

##### *reader*  [DbDataReader][5]
The data reader.

##### *i*  [Int32][6]
The zero-based column ordinal.

#### Return Value
[Nullable][1]&lt;[Single][2]>  
The value of the column.
#### Usage Note
In Visual Basic and C#, you can call this method as an instance method on any object of type [DbDataReader][5]. When you use instance method syntax to call this method, omit the first parameter. For more information, see [Extension Methods (Visual Basic)][7] or [Extension Methods (C# Programming Guide)][8].

See Also
--------

#### Reference
[Extensions Class][9]  
[DbExtensions Namespace][3]  

[1]: https://learn.microsoft.com/dotnet/api/system.nullable-1
[2]: https://learn.microsoft.com/dotnet/api/system.single
[3]: ../README.md
[4]: GetNullableFloat_1.md
[5]: https://learn.microsoft.com/dotnet/api/system.data.common.dbdatareader
[6]: https://learn.microsoft.com/dotnet/api/system.int32
[7]: https://docs.microsoft.com/dotnet/visual-basic/programming-guide/language-features/procedures/extension-methods
[8]: https://docs.microsoft.com/dotnet/csharp/programming-guide/classes-and-structs/extension-methods
[9]: README.md

================================================
FILE: docs/api/DbExtensions/Extensions/GetNullableFloat_1.md
================================================
Extensions.GetNullableFloat(DbDataReader, String) Method
========================================================
Gets the value of the specified column as a [Nullable&lt;T>][1] of [Single][2].
  
**Namespace:** [DbExtensions][3]  
**Assembly:** DbExtensions.dll

Overloads
---------

| Name                                       | Description                                                                     |
| ------------------------------------------ | ------------------------------------------------------------------------------- |
| [GetNullableFloat(DbDataReader, Int32)][4] | Gets the value of the specified column as a [Nullable&lt;T>][1] of [Single][2]. |
| **GetNullableFloat(DbDataReader, String)** | Gets the value of the specified column as a [Nullable&lt;T>][1] of [Single][2]. |


Syntax
------

```csharp
public static float? GetNullableFloat(
	this DbDataReader reader,
	string name
)
```

#### Parameters

##### *reader*  [DbDataReader][5]
The data reader.

##### *name*  [String][6]
The name of the column to find.

#### Return Value
[Nullable][1]&lt;[Single][2]>  
The value of the column.
#### Usage Note
In Visual Basic and C#, you can call this method as an instance method on any object of type [DbDataReader][5]. When you use instance method syntax to call this method, omit the first parameter. For more information, see [Extension Methods (Visual Basic)][7] or [Extension Methods (C# Programming Guide)][8].

See Also
--------

#### Reference
[Extensions Class][9]  
[DbExtensions Namespace][3]  

[1]: https://learn.microsoft.com/dotnet/api/system.nullable-1
[2]: https://learn.microsoft.com/dotnet/api/system.single
[3]: ../README.md
[4]: GetNullableFloat.md
[5]: https://learn.microsoft.com/dotnet/api/system.data.common.dbdatareader
[6]: https://learn.microsoft.com/dot
Download .txt
gitextract_v6wr0hj4/

├── .gitattributes
├── .github/
│   └── FUNDING.yml
├── .gitignore
├── .gitmodules
├── CHANGES.md
├── DbExtensions.sln
├── LICENSE.txt
├── NOTICE.xml
├── README.md
├── appveyor.yml
├── build/
│   ├── .gitignore
│   ├── DbExtensions.shfbproj
│   ├── build-docs.ps1
│   ├── ensure-nuget.ps1
│   └── release.ps1
├── docs/
│   ├── README.md
│   ├── SqlBuilder.md
│   ├── SqlSet.md
│   └── api/
│       ├── DbExtensions/
│       │   ├── AssociationAttribute/
│       │   │   ├── Name.md
│       │   │   ├── OtherKey.md
│       │   │   ├── README.md
│       │   │   ├── ThisKey.md
│       │   │   └── _ctor.md
│       │   ├── AutoSync/
│       │   │   └── README.md
│       │   ├── ChangeConflictException/
│       │   │   ├── README.md
│       │   │   └── _ctor.md
│       │   ├── ColumnAttribute/
│       │   │   ├── AutoSync.md
│       │   │   ├── ConvertTo.md
│       │   │   ├── IsDbGenerated.md
│       │   │   ├── IsPrimaryKey.md
│       │   │   ├── IsVersion.md
│       │   │   ├── Name.md
│       │   │   ├── README.md
│       │   │   └── _ctor.md
│       │   ├── ComplexPropertyAttribute/
│       │   │   ├── Name.md
│       │   │   ├── README.md
│       │   │   ├── Separator.md
│       │   │   └── _ctor.md
│       │   ├── Database/
│       │   │   ├── Add.md
│       │   │   ├── AddAsync.md
│       │   │   ├── AsyncMap.md
│       │   │   ├── AsyncMap_1.md
│       │   │   ├── AsyncMap__1.md
│       │   │   ├── AsyncMap__1_1.md
│       │   │   ├── Configuration.md
│       │   │   ├── Connection.md
│       │   │   ├── CreateCommand.md
│       │   │   ├── Dispose.md
│       │   │   ├── Dispose_1.md
│       │   │   ├── EnsureConnectionOpen.md
│       │   │   ├── EnsureConnectionOpenAsync.md
│       │   │   ├── EnsureInTransaction.md
│       │   │   ├── EnsureInTransactionAsync.md
│       │   │   ├── EnsureInTransactionAsync_1.md
│       │   │   ├── EnsureInTransaction_1.md
│       │   │   ├── Execute.md
│       │   │   ├── ExecuteAsync.md
│       │   │   ├── FindAsync__1.md
│       │   │   ├── Find__1.md
│       │   │   ├── From.md
│       │   │   ├── FromQuery.md
│       │   │   ├── FromQuery_1.md
│       │   │   ├── FromQuery__1.md
│       │   │   ├── FromQuery__1_1.md
│       │   │   ├── From_1.md
│       │   │   ├── From__1.md
│       │   │   ├── LastInsertId.md
│       │   │   ├── LastInsertIdAsync.md
│       │   │   ├── Map.md
│       │   │   ├── Map_1.md
│       │   │   ├── Map__1.md
│       │   │   ├── Map__1_1.md
│       │   │   ├── QuoteIdentifier.md
│       │   │   ├── README.md
│       │   │   ├── Remove.md
│       │   │   ├── RemoveAsync.md
│       │   │   ├── Table.md
│       │   │   ├── Table__1.md
│       │   │   ├── Transaction.md
│       │   │   ├── Update.md
│       │   │   ├── UpdateAsync.md
│       │   │   ├── UpdateAsync_1.md
│       │   │   ├── Update_1.md
│       │   │   ├── _ctor.md
│       │   │   └── _ctor_1.md
│       │   ├── DatabaseConfiguration/
│       │   │   ├── CommandTimeout.md
│       │   │   ├── DefaultComplexPropertySeparator.md
│       │   │   ├── EnableBatchCommands.md
│       │   │   ├── LastInsertIdCommand.md
│       │   │   ├── Log.md
│       │   │   ├── ParameterNameBuilder.md
│       │   │   ├── ParameterPlaceholderBuilder.md
│       │   │   ├── QuotePrefix.md
│       │   │   ├── QuoteSuffix.md
│       │   │   ├── README.md
│       │   │   └── UseVersionMember.md
│       │   ├── Extensions/
│       │   │   ├── GetBoolean.md
│       │   │   ├── GetByte.md
│       │   │   ├── GetChar.md
│       │   │   ├── GetDateTime.md
│       │   │   ├── GetDecimal.md
│       │   │   ├── GetDouble.md
│       │   │   ├── GetFloat.md
│       │   │   ├── GetInt16.md
│       │   │   ├── GetInt32.md
│       │   │   ├── GetInt64.md
│       │   │   ├── GetNullableBoolean.md
│       │   │   ├── GetNullableBoolean_1.md
│       │   │   ├── GetNullableByte.md
│       │   │   ├── GetNullableByte_1.md
│       │   │   ├── GetNullableChar.md
│       │   │   ├── GetNullableChar_1.md
│       │   │   ├── GetNullableDateTime.md
│       │   │   ├── GetNullableDateTime_1.md
│       │   │   ├── GetNullableDecimal.md
│       │   │   ├── GetNullableDecimal_1.md
│       │   │   ├── GetNullableDouble.md
│       │   │   ├── GetNullableDouble_1.md
│       │   │   ├── GetNullableFloat.md
│       │   │   ├── GetNullableFloat_1.md
│       │   │   ├── GetNullableGuid.md
│       │   │   ├── GetNullableGuid_1.md
│       │   │   ├── GetNullableInt16.md
│       │   │   ├── GetNullableInt16_1.md
│       │   │   ├── GetNullableInt32.md
│       │   │   ├── GetNullableInt32_1.md
│       │   │   ├── GetNullableInt64.md
│       │   │   ├── GetNullableInt64_1.md
│       │   │   ├── GetString.md
│       │   │   ├── GetStringOrNull.md
│       │   │   ├── GetStringOrNull_1.md
│       │   │   ├── GetValue.md
│       │   │   ├── GetValueOrNull.md
│       │   │   ├── GetValueOrNull_1.md
│       │   │   └── README.md
│       │   ├── README.md
│       │   ├── SQL/
│       │   │   ├── DELETE_FROM.md
│       │   │   ├── DELETE_FROM_1.md
│       │   │   ├── INSERT_INTO.md
│       │   │   ├── INSERT_INTO_1.md
│       │   │   ├── README.md
│       │   │   ├── SELECT.md
│       │   │   ├── SELECT_1.md
│       │   │   ├── UPDATE.md
│       │   │   ├── UPDATE_1.md
│       │   │   ├── WITH.md
│       │   │   ├── WITH_1.md
│       │   │   ├── WITH_2.md
│       │   │   └── WITH_3.md
│       │   ├── SqlBuilder/
│       │   │   ├── Append.md
│       │   │   ├── AppendClause.md
│       │   │   ├── AppendClause__1.md
│       │   │   ├── AppendElse.md
│       │   │   ├── AppendElseIf.md
│       │   │   ├── AppendIf.md
│       │   │   ├── AppendLine.md
│       │   │   ├── AppendSql.md
│       │   │   ├── Append_1.md
│       │   │   ├── Buffer.md
│       │   │   ├── CROSS_JOIN.md
│       │   │   ├── CROSS_JOIN_1.md
│       │   │   ├── CROSS_JOIN_2.md
│       │   │   ├── Clone.md
│       │   │   ├── CurrentClause.md
│       │   │   ├── DELETE_FROM.md
│       │   │   ├── DELETE_FROM_1.md
│       │   │   ├── FROM.md
│       │   │   ├── FROM_1.md
│       │   │   ├── FROM_2.md
│       │   │   ├── FROM_3.md
│       │   │   ├── FROM_4.md
│       │   │   ├── GROUP_BY.md
│       │   │   ├── GROUP_BY_1.md
│       │   │   ├── GROUP_BY_2.md
│       │   │   ├── HAVING.md
│       │   │   ├── HAVING_1.md
│       │   │   ├── HAVING_2.md
│       │   │   ├── INNER_JOIN.md
│       │   │   ├── INNER_JOIN_1.md
│       │   │   ├── INNER_JOIN_2.md
│       │   │   ├── INSERT_INTO.md
│       │   │   ├── INSERT_INTO_1.md
│       │   │   ├── InsertText.md
│       │   │   ├── IsEmpty.md
│       │   │   ├── JOIN.md
│       │   │   ├── JOIN_1.md
│       │   │   ├── JOIN_2.md
│       │   │   ├── JoinSql.md
│       │   │   ├── JoinSql_1.md
│       │   │   ├── LEFT_JOIN.md
│       │   │   ├── LEFT_JOIN_1.md
│       │   │   ├── LEFT_JOIN_2.md
│       │   │   ├── LIMIT.md
│       │   │   ├── LIMIT_1.md
│       │   │   ├── LIMIT_2.md
│       │   │   ├── LIMIT_3.md
│       │   │   ├── NextClause.md
│       │   │   ├── OFFSET.md
│       │   │   ├── OFFSET_1.md
│       │   │   ├── OFFSET_2.md
│       │   │   ├── OFFSET_3.md
│       │   │   ├── ORDER_BY.md
│       │   │   ├── ORDER_BY_1.md
│       │   │   ├── ORDER_BY_2.md
│       │   │   ├── ParameterValues.md
│       │   │   ├── README.md
│       │   │   ├── RIGHT_JOIN.md
│       │   │   ├── RIGHT_JOIN_1.md
│       │   │   ├── RIGHT_JOIN_2.md
│       │   │   ├── SELECT.md
│       │   │   ├── SELECT_1.md
│       │   │   ├── SELECT_2.md
│       │   │   ├── SET.md
│       │   │   ├── SET_1.md
│       │   │   ├── SetCurrentClause.md
│       │   │   ├── SetCurrentClause__1.md
│       │   │   ├── SetNextClause.md
│       │   │   ├── SetNextClause__1.md
│       │   │   ├── ToString.md
│       │   │   ├── UNION.md
│       │   │   ├── UPDATE.md
│       │   │   ├── UPDATE_1.md
│       │   │   ├── VALUES.md
│       │   │   ├── VALUES_1.md
│       │   │   ├── WHERE.md
│       │   │   ├── WHERE_1.md
│       │   │   ├── WHERE_2.md
│       │   │   ├── WITH.md
│       │   │   ├── WITH_1.md
│       │   │   ├── WITH_2.md
│       │   │   ├── WITH_3.md
│       │   │   ├── _.md
│       │   │   ├── _Else.md
│       │   │   ├── _ElseIf.md
│       │   │   ├── _If.md
│       │   │   └── __1.md
│       │   ├── SqlClause/
│       │   │   ├── Instance__1.md
│       │   │   ├── Name.md
│       │   │   ├── README.md
│       │   │   ├── Separator.md
│       │   │   └── _ctor.md
│       │   ├── SqlSet/
│       │   │   ├── All.md
│       │   │   ├── AllAsync.md
│       │   │   ├── AllAsync_1.md
│       │   │   ├── All_1.md
│       │   │   ├── Any.md
│       │   │   ├── AnyAsync.md
│       │   │   ├── AnyAsync_1.md
│       │   │   ├── AnyAsync_2.md
│       │   │   ├── Any_1.md
│       │   │   ├── Any_2.md
│       │   │   ├── AsAsyncEnumerable.md
│       │   │   ├── AsEnumerable.md
│       │   │   ├── Cast.md
│       │   │   ├── Cast__1.md
│       │   │   ├── Contains.md
│       │   │   ├── ContainsAsync.md
│       │   │   ├── ContainsKey.md
│       │   │   ├── ContainsKeyAsync.md
│       │   │   ├── Count.md
│       │   │   ├── CountAsync.md
│       │   │   ├── CountAsync_1.md
│       │   │   ├── CountAsync_2.md
│       │   │   ├── Count_1.md
│       │   │   ├── Count_2.md
│       │   │   ├── Database.md
│       │   │   ├── Find.md
│       │   │   ├── FindAsync.md
│       │   │   ├── First.md
│       │   │   ├── FirstAsync.md
│       │   │   ├── FirstAsync_1.md
│       │   │   ├── FirstAsync_2.md
│       │   │   ├── FirstOrDefault.md
│       │   │   ├── FirstOrDefaultAsync.md
│       │   │   ├── FirstOrDefaultAsync_1.md
│       │   │   ├── FirstOrDefaultAsync_2.md
│       │   │   ├── FirstOrDefault_1.md
│       │   │   ├── FirstOrDefault_2.md
│       │   │   ├── First_1.md
│       │   │   ├── First_2.md
│       │   │   ├── GetAsyncEnumerator.md
│       │   │   ├── GetDefiningQuery.md
│       │   │   ├── GetEnumerator.md
│       │   │   ├── Include.md
│       │   │   ├── IncludeMany.md
│       │   │   ├── LongCount.md
│       │   │   ├── LongCountAsync.md
│       │   │   ├── LongCountAsync_1.md
│       │   │   ├── LongCountAsync_2.md
│       │   │   ├── LongCount_1.md
│       │   │   ├── LongCount_2.md
│       │   │   ├── OrderBy.md
│       │   │   ├── OrderBy_1.md
│       │   │   ├── README.md
│       │   │   ├── ResultType.md
│       │   │   ├── Select.md
│       │   │   ├── Select_1.md
│       │   │   ├── Select_2.md
│       │   │   ├── Select_3.md
│       │   │   ├── Select__1.md
│       │   │   ├── Select__1_1.md
│       │   │   ├── Select__1_2.md
│       │   │   ├── Select__1_3.md
│       │   │   ├── Single.md
│       │   │   ├── SingleAsync.md
│       │   │   ├── SingleAsync_1.md
│       │   │   ├── SingleAsync_2.md
│       │   │   ├── SingleOrDefault.md
│       │   │   ├── SingleOrDefaultAsync.md
│       │   │   ├── SingleOrDefaultAsync_1.md
│       │   │   ├── SingleOrDefaultAsync_2.md
│       │   │   ├── SingleOrDefault_1.md
│       │   │   ├── SingleOrDefault_2.md
│       │   │   ├── Single_1.md
│       │   │   ├── Single_2.md
│       │   │   ├── Skip.md
│       │   │   ├── Take.md
│       │   │   ├── ToArray.md
│       │   │   ├── ToArrayAsync.md
│       │   │   ├── ToList.md
│       │   │   ├── ToListAsync.md
│       │   │   ├── ToString.md
│       │   │   ├── Where.md
│       │   │   └── Where_1.md
│       │   ├── SqlSet_1/
│       │   │   ├── AsAsyncEnumerable.md
│       │   │   ├── AsEnumerable.md
│       │   │   ├── Contains.md
│       │   │   ├── ContainsAsync.md
│       │   │   ├── Find.md
│       │   │   ├── FindAsync.md
│       │   │   ├── First.md
│       │   │   ├── FirstAsync.md
│       │   │   ├── FirstAsync_1.md
│       │   │   ├── FirstAsync_2.md
│       │   │   ├── FirstOrDefault.md
│       │   │   ├── FirstOrDefaultAsync.md
│       │   │   ├── FirstOrDefaultAsync_1.md
│       │   │   ├── FirstOrDefaultAsync_2.md
│       │   │   ├── FirstOrDefault_1.md
│       │   │   ├── FirstOrDefault_2.md
│       │   │   ├── First_1.md
│       │   │   ├── First_2.md
│       │   │   ├── GetAsyncEnumerator.md
│       │   │   ├── GetEnumerator.md
│       │   │   ├── Include.md
│       │   │   ├── IncludeMany.md
│       │   │   ├── IncludeMany__1.md
│       │   │   ├── Include_1.md
│       │   │   ├── OrderBy.md
│       │   │   ├── OrderBy_1.md
│       │   │   ├── README.md
│       │   │   ├── Single.md
│       │   │   ├── SingleAsync.md
│       │   │   ├── SingleAsync_1.md
│       │   │   ├── SingleAsync_2.md
│       │   │   ├── SingleOrDefault.md
│       │   │   ├── SingleOrDefaultAsync.md
│       │   │   ├── SingleOrDefaultAsync_1.md
│       │   │   ├── SingleOrDefaultAsync_2.md
│       │   │   ├── SingleOrDefault_1.md
│       │   │   ├── SingleOrDefault_2.md
│       │   │   ├── Single_1.md
│       │   │   ├── Single_2.md
│       │   │   ├── Skip.md
│       │   │   ├── Take.md
│       │   │   ├── ToArray.md
│       │   │   ├── ToArrayAsync.md
│       │   │   ├── ToList.md
│       │   │   ├── ToListAsync.md
│       │   │   ├── Where.md
│       │   │   └── Where_1.md
│       │   ├── SqlTable/
│       │   │   ├── Add.md
│       │   │   ├── AddAsync.md
│       │   │   ├── AddRange.md
│       │   │   ├── AddRangeAsync.md
│       │   │   ├── AddRangeAsync_1.md
│       │   │   ├── AddRange_1.md
│       │   │   ├── Cast__1.md
│       │   │   ├── Name.md
│       │   │   ├── README.md
│       │   │   ├── Refresh.md
│       │   │   ├── RefreshAsync.md
│       │   │   ├── Remove.md
│       │   │   ├── RemoveAsync.md
│       │   │   ├── RemoveKey.md
│       │   │   ├── RemoveKeyAsync.md
│       │   │   ├── RemoveRange.md
│       │   │   ├── RemoveRangeAsync.md
│       │   │   ├── RemoveRangeAsync_1.md
│       │   │   ├── RemoveRange_1.md
│       │   │   ├── Update.md
│       │   │   ├── UpdateAsync.md
│       │   │   ├── UpdateAsync_1.md
│       │   │   ├── UpdateRange.md
│       │   │   ├── UpdateRangeAsync.md
│       │   │   ├── UpdateRangeAsync_1.md
│       │   │   ├── UpdateRange_1.md
│       │   │   └── Update_1.md
│       │   ├── SqlTable_1/
│       │   │   ├── Add.md
│       │   │   ├── AddAsync.md
│       │   │   ├── AddRange.md
│       │   │   ├── AddRangeAsync.md
│       │   │   ├── AddRangeAsync_1.md
│       │   │   ├── AddRange_1.md
│       │   │   ├── Name.md
│       │   │   ├── README.md
│       │   │   ├── Refresh.md
│       │   │   ├── RefreshAsync.md
│       │   │   ├── Remove.md
│       │   │   ├── RemoveAsync.md
│       │   │   ├── RemoveKey.md
│       │   │   ├── RemoveKeyAsync.md
│       │   │   ├── RemoveRange.md
│       │   │   ├── RemoveRangeAsync.md
│       │   │   ├── RemoveRangeAsync_1.md
│       │   │   ├── RemoveRange_1.md
│       │   │   ├── Update.md
│       │   │   ├── UpdateAsync.md
│       │   │   ├── UpdateAsync_1.md
│       │   │   ├── UpdateRange.md
│       │   │   ├── UpdateRangeAsync.md
│       │   │   ├── UpdateRangeAsync_1.md
│       │   │   ├── UpdateRange_1.md
│       │   │   └── Update_1.md
│       │   └── TableAttribute/
│       │       ├── Name.md
│       │       ├── README.md
│       │       └── _ctor.md
│       └── README.md
├── samples/
│   ├── App/
│   │   ├── App.config
│   │   ├── Northwind/
│   │   │   ├── Northwind.mdf
│   │   │   ├── Northwind.sl3
│   │   │   └── Northwind_log.ldf
│   │   ├── Program.cs
│   │   ├── Samples.App.csproj
│   │   └── Utilities/
│   │       ├── ObjectDumper-LICENSE.txt
│   │       └── ObjectDumper.cs
│   └── CSharp/
│       ├── Database.Annotated.cs
│       ├── Database.Poco.cs
│       ├── Northwind/
│       │   ├── Category.cs
│       │   ├── Customer.cs
│       │   ├── CustomerCustomerDemo.cs
│       │   ├── CustomerDemographic.cs
│       │   ├── Employee.cs
│       │   ├── EmployeeTerritory.cs
│       │   ├── NorthwindDatabase.cs
│       │   ├── Order.cs
│       │   ├── OrderDetail.cs
│       │   ├── Product.cs
│       │   ├── Region.cs
│       │   ├── Shipper.cs
│       │   ├── Supplier.cs
│       │   └── Territory.cs
│       ├── Samples.CSharp.csproj
│       ├── SqlBuilder.cs
│       └── SqlSet.cs
├── src/
│   ├── DbExtensions/
│   │   ├── .editorconfig
│   │   ├── Attributes.cs
│   │   ├── Database.cs
│   │   ├── DbExtensions.csproj
│   │   ├── DynamicMapper.cs
│   │   ├── Extensions.cs
│   │   ├── Mapper.cs
│   │   ├── Metadata/
│   │   │   ├── Accessors.cs
│   │   │   ├── AttributedMetaModel.cs
│   │   │   ├── Error.cs
│   │   │   ├── MappingSource.cs
│   │   │   ├── MappingSystem.cs
│   │   │   ├── MetaModel.cs
│   │   │   └── TypeSystem.cs
│   │   ├── PocoMapper.cs
│   │   ├── Properties/
│   │   │   └── AssemblyInfo.cs
│   │   ├── SqlBuilder.cs
│   │   ├── SqlSet.Async.cs
│   │   ├── SqlSet.cs
│   │   ├── SqlTable.Async.cs
│   │   ├── SqlTable.SqlSet.cs
│   │   └── SqlTable.cs
│   ├── DbExtensions-QE/
│   │   ├── DbExtensions-QE.csproj
│   │   └── README.md
│   ├── DbExtensions.SqlBuilder/
│   │   ├── DbExtensions.SqlBuilder.csproj
│   │   └── README.md
│   └── DbExtensions.SqlSet/
│       ├── DbExtensions.SqlSet.csproj
│       └── README.md
└── tests/
    └── DbExtensions.Tests/
        ├── DbExtensions.Tests.csproj
        ├── Mapping/
        │   ├── DynamicMappingBehavior.cs
        │   ├── EnumMappingBehavior.cs
        │   ├── PersistentComplexPropertiesBehavior.cs
        │   ├── PocoMappingBehavior.cs
        │   ├── PocoMappingConstructorBehavior.cs
        │   └── PocoMappingEnumBehavior.cs
        ├── Metadata/
        │   └── AssociationReflection.cs
        ├── Querying/
        │   ├── SqlBuilderBehavior/
        │   │   ├── BasicTests.cs
        │   │   ├── ConditionalAppendTests.cs
        │   │   ├── ConditionalClauseTests.cs
        │   │   ├── ExtensibilityTests.cs
        │   │   └── ValuesClauseTests.cs
        │   ├── SqlSetAnnotatedBehavior/
        │   │   ├── BasicTests.cs
        │   │   └── IncludeTests.cs
        │   ├── SqlSetAsyncBehavior.cs
        │   ├── SqlSetBehavior.cs
        │   ├── SqlSetBehaviorForSqlServer.cs
        │   └── SqlTableBehavior.cs
        └── TestUtil.cs
Download .txt
SYMBOL INDEX (1361 symbols across 58 files)

FILE: samples/App/Program.cs
  class Program (line 17) | class Program {
    method Main (line 22) | static void
    method Run (line 32) | void
    method GetSamplesLanguages (line 118) | string[]
    method GetSamples (line 136) | IEnumerable<object>
    method RunSamples (line 171) | static void
    method GetArrayOption (line 273) | static int
    method WriteError (line 330) | static void

FILE: samples/App/Utilities/ObjectDumper.cs
  class ObjectDumper (line 10) | public class ObjectDumper {
    method Write (line 12) | public static void Write(object element)
    method Write (line 17) | public static void Write(object element, int depth)
    method Write (line 22) | public static void Write(object element, int depth, TextWriter log)
    method ObjectDumper (line 34) | private ObjectDumper(int depth)
    method Write (line 39) | private void Write(string s)
    method WriteIndent (line 47) | private void WriteIndent()
    method WriteLine (line 52) | private void WriteLine()
    method WriteTab (line 58) | private void WriteTab()
    method WriteObject (line 64) | private void WriteObject(string prefix, object element)
    method WriteValue (line 145) | private void WriteValue(object o)

FILE: samples/CSharp/Database.Annotated.cs
  class DatabaseAnnotatedSamples (line 7) | public class DatabaseAnnotatedSamples {
    method DatabaseAnnotatedSamples (line 11) | public DatabaseAnnotatedSamples(NorthwindDatabase db) {
    method IncludeManyToOne (line 15) | public IEnumerable<Product> IncludeManyToOne() {
    method IncludeManyToOneNested (line 24) | public IEnumerable<EmployeeTerritory> IncludeManyToOneNested() {
    method IncludeOneToMany (line 32) | public Region IncludeOneToMany() {
    method ContainsKey (line 39) | public bool ContainsKey() {
    method Find (line 43) | public Product Find() {
    method Transactions_AdoNet (line 47) | public void Transactions_AdoNet() {

FILE: samples/CSharp/Database.Poco.cs
  class DatabasePocoSamples (line 10) | public class DatabasePocoSamples {
    method DatabasePocoSamples (line 14) | public DatabasePocoSamples(Database db) {
    method SelectWithManyToOne (line 18) | public IEnumerable<Product> SelectWithManyToOne() {
    method SelectWithManyToOneNested (line 32) | public IEnumerable<EmployeeTerritory> SelectWithManyToOneNested() {
    method AnnonymousType (line 46) | public IEnumerable AnnonymousType() {
    method MappingCalculatedColumn (line 59) | public IEnumerable<ProductWithStockValue> MappingCalculatedColumn() {
    method MappingToConstructorArguments (line 70) | public MappingToConstructorArgumentsSample MappingToConstructorArgumen...
    method MappingToConstructorArgumentsNested (line 81) | public MappingToConstructorArgumentsSample MappingToConstructorArgumen...
    method Dynamic (line 92) | public IEnumerable<dynamic> Dynamic() {
  class ProductWithStockValue (line 107) | public class ProductWithStockValue : Product {
  class MappingToConstructorArgumentsSample (line 112) | public class MappingToConstructorArgumentsSample {
    method MappingToConstructorArgumentsSample (line 118) | public MappingToConstructorArgumentsSample(int id) {
    method MappingToConstructorArgumentsSample (line 122) | public MappingToConstructorArgumentsSample(int id, Uri url, Money? price)
  type Money (line 130) | public struct Money {
    method Money (line 135) | public Money(decimal amount, string currency) {
    method ToString (line 140) | public override string ToString() {

FILE: samples/CSharp/Northwind/Category.cs
  class Category (line 7) | [Table(Name = "Categories")]

FILE: samples/CSharp/Northwind/Customer.cs
  class Customer (line 7) | [Table(Name = "Customers")]

FILE: samples/CSharp/Northwind/CustomerCustomerDemo.cs
  class CustomerCustomerDemo (line 6) | [Table]

FILE: samples/CSharp/Northwind/CustomerDemographic.cs
  class CustomerDemographic (line 7) | [Table(Name = "CustomerDemographics")]

FILE: samples/CSharp/Northwind/Employee.cs
  class Employee (line 7) | [Table(Name = "Employees")]

FILE: samples/CSharp/Northwind/EmployeeTerritory.cs
  class EmployeeTerritory (line 6) | [Table(Name = "EmployeeTerritories")]

FILE: samples/CSharp/Northwind/NorthwindDatabase.cs
  class NorthwindDatabase (line 6) | public class NorthwindDatabase : Database {
    method NorthwindDatabase (line 20) | public NorthwindDatabase(string connectionString, string providerInvar...

FILE: samples/CSharp/Northwind/Order.cs
  class Order (line 7) | [Table(Name = "Orders")]

FILE: samples/CSharp/Northwind/OrderDetail.cs
  class OrderDetail (line 6) | [Table(Name = "Order Details")]

FILE: samples/CSharp/Northwind/Product.cs
  class Product (line 7) | [Table(Name = "Products")]

FILE: samples/CSharp/Northwind/Region.cs
  class Region (line 7) | [Table(Name = "Region")]

FILE: samples/CSharp/Northwind/Shipper.cs
  class Shipper (line 7) | [Table(Name = "Shippers")]

FILE: samples/CSharp/Northwind/Supplier.cs
  class Supplier (line 7) | [Table(Name = "Suppliers")]

FILE: samples/CSharp/Northwind/Territory.cs
  class Territory (line 7) | [Table(Name = "Territories")]

FILE: samples/CSharp/SqlBuilder.cs
  class SqlBuilderSamples (line 6) | public class SqlBuilderSamples {
    method DynamicSql_1 (line 9) | public SqlBuilder DynamicSql_1() {
    method DynamicSql_2 (line 13) | public SqlBuilder DynamicSql_2() {
    method DynamicSql_3 (line 17) | public SqlBuilder DynamicSql_3() {
    method DynamicSql_4 (line 21) | public SqlBuilder DynamicSql_4() {
    method DynamicSql (line 25) | SqlBuilder DynamicSql(int? categoryId, int? supplierId) {
    method Subquery (line 36) | public SqlBuilder Subquery() {
    method ExtendRawSql (line 46) | public SqlBuilder ExtendRawSql() {
    method ListArgument (line 55) | public SqlBuilder ListArgument() {
    method Insert (line 70) | public SqlBuilder Insert() {
    method Update (line 77) | public SqlBuilder Update() {
    method UpdateWithSubquery (line 85) | public SqlBuilder UpdateWithSubquery() {
    method Delete (line 96) | public SqlBuilder Delete() {
    method AlphabeticalListOfProducts (line 110) | public SqlBuilder AlphabeticalListOfProducts() {
    method CustomersAndSuppliersByCity (line 127) | public SqlBuilder CustomersAndSuppliersByCity() {
    method ProductsAboveAveragePrice (line 144) | public SqlBuilder ProductsAboveAveragePrice() {
    method ProductSalesFor1997 (line 166) | public SqlBuilder ProductSalesFor1997() {

FILE: samples/CSharp/SqlSet.cs
  class SqlSetSamples (line 9) | public class SqlSetSamples {
    method SqlSetSamples (line 13) | public SqlSetSamples(Database db) {
    method AreThereAnyProducts (line 17) | public bool AreThereAnyProducts() {
    method DoAllProductsHaveUnitPrice (line 21) | public bool DoAllProductsHaveUnitPrice() {
    method DoSomeProductsAreOutOfStock (line 25) | public bool DoSomeProductsAreOutOfStock() {
    method HowManyProductsAreOutOfStock (line 29) | public int HowManyProductsAreOutOfStock() {
    method FirstProduct (line 33) | public Product FirstProduct() {
    method SecondProduct (line 37) | public Product SecondProduct() {
    method FirstOutOfStockProduct (line 41) | public Product FirstOutOfStockProduct() {
    method Top5ProductsWithLowestStock (line 45) | public IEnumerable Top5ProductsWithLowestStock() {
    method NamesOfOutOfStockProducts (line 56) | public IEnumerable<string> NamesOfOutOfStockProducts() {
    method GetSpecificProduct (line 64) | public Product GetSpecificProduct() {

FILE: src/DbExtensions/Attributes.cs
  class DatabaseAttribute (line 24) | [AttributeUsage(AttributeTargets.Class)]
  class TableAttribute (line 35) | [AttributeUsage(AttributeTargets.Class, Inherited = false)]
  class ColumnAttribute (line 50) | [AttributeUsage(AttributeTargets.Field | AttributeTargets.Property)]
  type UpdateCheck (line 137) | internal enum UpdateCheck {
  type AutoSync (line 148) | public enum AutoSync {
  class AssociationAttribute (line 185) | [AttributeUsage(AttributeTargets.Field | AttributeTargets.Property)]
  class InheritanceMappingAttribute (line 250) | [AttributeUsage(AttributeTargets.Class, AllowMultiple = true, Inherited ...
    method InheritanceMappingAttribute (line 274) | public
  type IDataAttribute (line 285) | interface IDataAttribute {
  class ComplexPropertyAttribute (line 298) | [AttributeUsage(AttributeTargets.Property)]
    method ComplexPropertyAttribute (line 322) | public
    method ComplexPropertyAttribute (line 325) | internal

FILE: src/DbExtensions/Database.cs
  class Database (line 43) | public partial class Database : IDisposable {
    method Database (line 77) | public
    method Database (line 102) | public
    method Database (line 112) | internal // Used by tests
    method Initialize (line 124) | void
    method Initialize2 (line 137) | partial void
    method CreateCommandBuilder (line 140) | DbCommandBuilder?
    method EnsureConnectionOpen (line 166) | public IDisposable
    method EnsureConnectionOpenAsync (line 197) | public async ValueTask<IAsyncDisposable>
    method EnsureInTransaction (line 255) | public DbTransaction
    method EnsureInTransaction (line 265) | public virtual DbTransaction
    method EnsureInTransactionAsync (line 322) | public ValueTask<DbTransaction>
    method EnsureInTransactionAsync (line 329) | public virtual async ValueTask<DbTransaction>
    method Execute (line 370) | public int
    method ExecuteAsync (line 403) | public async ValueTask<int>
    method OnExecuted (line 444) | void
    method Map (line 476) | public IEnumerable<TResult>
    method AsyncMap (line 487) | public IAsyncEnumerable<TResult>
    method LastInsertId (line 505) | public virtual object?
    method LastInsertIdAsync (line 525) | public virtual async ValueTask<object?>
    method CreateCommand (line 553) | public virtual DbCommand
    method QuoteIdentifier (line 609) | public string
    method QuoteIdentifier (line 617) | internal void
    method QuoteIdentifierImpl (line 627) | void
    method Trace (line 649) | internal void
    method Trace (line 653) | internal static void
    method Dispose (line 685) | public void
    method Dispose (line 699) | protected virtual void
    method Equals (line 714) | [EditorBrowsable(EditorBrowsableState.Never)]
    method GetHashCode (line 720) | [EditorBrowsable(EditorBrowsableState.Never)]
    method GetType (line 726) | [EditorBrowsable(EditorBrowsableState.Never)]
    method ToString (line 732) | [EditorBrowsable(EditorBrowsableState.Never)]
    class WrappedConnection (line 736) | sealed class WrappedConnection(DbConnection? previouslyClosedConn) : I...
      method Dispose (line 738) | public void
      method DisposeAsync (line 746) | public async ValueTask
    class WrappedTransaction (line 757) | sealed class WrappedTransaction : DbTransaction {
      method WrappedTransaction (line 774) | public
      method Commit (line 781) | public override void
      method CommitAsync (line 793) | public override async Task
      method Rollback (line 808) | public override void
      method RollbackAsync (line 820) | public override async Task
      method Dispose (line 835) | protected override void
      method DisposeAsync (line 854) | public override async ValueTask
      method RemoveTxFromDatabase (line 875) | void
    class NoOpTransaction (line 884) | sealed class NoOpTransaction(DbConnection conn, IsolationLevel isolati...
      method Commit (line 892) | public override void
      method Rollback (line 895) | public override void
      method Dispose (line 899) | protected override void
      method DisposeAsync (line 907) | public override async ValueTask
  class DatabaseConfiguration (line 921) | public sealed partial class DatabaseConfiguration {
    method DefaultParameterNameBuilder (line 1027) | static string
    method DefaultParameterPlaceholderBuilder (line 1030) | static string
    method DatabaseConfiguration (line 1034) | internal
    method Initialize (line 1067) | void
  type SqlDialect (line 1093) | enum SqlDialect {
  class ChangeConflictException (line 1104) | public sealed class ChangeConflictException : Exception {
    method ChangeConflictException (line 1112) | public
  class MappingEnumerable (line 1117) | sealed class MappingEnumerable<TResult> : IEnumerable<TResult>, IEnumera...
    method MappingEnumerable (line 1147) | public
    method GetEnumerator (line 1161) | public IEnumerator<TResult>
    method GetEnumerator (line 1172) | IEnumerator
    method MoveNext (line 1176) | public bool
    method Reset (line 1221) | public void
    method Dispose (line 1225) | public void
    method PossiblyOpenConnection (line 1233) | void
    method PossiblyCloseConnection (line 1241) | void
  class AsyncMappingEnumerable (line 1252) | sealed class AsyncMappingEnumerable<TResult> : IAsyncEnumerable<TResult>...
    method AsyncMappingEnumerable (line 1282) | public
    method GetAsyncEnumerator (line 1296) | public IAsyncEnumerator<TResult>
    method MoveNextAsync (line 1308) | public async ValueTask<bool>
    method PossiblyOpenConnection (line 1363) | async ValueTask
    method PossiblyCloseConnection (line 1374) | async ValueTask
    method DisposeAsync (line 1385) | public async ValueTask

FILE: src/DbExtensions/DynamicMapper.cs
  class Database (line 26) | partial class Database {
    method Map (line 35) | public IEnumerable<dynamic>
    method AsyncMap (line 47) | public IAsyncEnumerable<dynamic>
    method CreateDynamicMapper (line 57) | internal DynamicMapper
  class SqlSet (line 66) | partial class SqlSet {
    method DynamicMap (line 68) | partial void
    method DynamicAsyncMap (line 76) | partial void
    method CreateDynamicMapper (line 84) | DynamicMapper
  class DynamicMapper (line 94) | sealed class DynamicMapper : Mapper {
    method CreateRootNode (line 99) | protected override Node
    method CreateSimpleProperty (line 102) | protected override Node
    method CreateComplexProperty (line 106) | protected override Node
    method CreateParameterNode (line 110) | protected override Node
    method CreateParameterNode (line 114) | protected override Node
    method DynamicMap (line 118) | public object
  class DynamicNode (line 131) | sealed class DynamicNode : Node {
    method DynamicNode (line 148) | internal
    method DynamicNode (line 153) | internal
    method Map (line 171) | public object?
    method MapComplex (line 181) | object?
    method AllColumnsNull (line 194) | bool
    method MapSimple (line 211) | object?
    method Create (line 220) | public object
    method Load (line 224) | public void
    method Read (line 248) | void
    method Get (line 255) | object?
    method Set (line 267) | void
    method GetConstructors (line 272) | public override ConstructorInfo[]

FILE: src/DbExtensions/Extensions.cs
  class Extensions (line 26) | public static class Extensions {
    method GetBoolean (line 33) | public static Boolean
    method GetByte (line 42) | public static Byte
    method GetChar (line 51) | public static Char
    method GetDateTime (line 60) | public static DateTime
    method GetDecimal (line 69) | public static Decimal
    method GetDouble (line 78) | public static Double
    method GetFloat (line 87) | public static Single
    method GetInt16 (line 96) | public static Int16
    method GetInt32 (line 105) | public static Int32
    method GetInt64 (line 114) | public static Int64
    method GetString (line 123) | public static String
    method GetValue (line 134) | public static Object
    method GetNullableBoolean (line 143) | public static Boolean?
    method GetNullableBoolean (line 152) | public static Boolean?
    method GetNullableByte (line 161) | public static Byte?
    method GetNullableByte (line 170) | public static Byte?
    method GetNullableChar (line 179) | public static Char?
    method GetNullableChar (line 188) | public static Char?
    method GetNullableDateTime (line 197) | public static DateTime?
    method GetNullableDateTime (line 206) | public static DateTime?
    method GetNullableDecimal (line 215) | public static Decimal?
    method GetNullableDecimal (line 224) | public static Decimal?
    method GetNullableDouble (line 233) | public static Double?
    method GetNullableDouble (line 242) | public static Double?
    method GetNullableFloat (line 251) | public static Single?
    method GetNullableFloat (line 260) | public static Single?
    method GetNullableGuid (line 269) | public static Guid?
    method GetNullableGuid (line 278) | public static Guid?
    method GetNullableInt16 (line 287) | public static Int16?
    method GetNullableInt16 (line 296) | public static Int16?
    method GetNullableInt32 (line 305) | public static Int32?
    method GetNullableInt32 (line 314) | public static Int32?
    method GetNullableInt64 (line 323) | public static Int64?
    method GetNullableInt64 (line 332) | public static Int64?
    method GetStringOrNull (line 341) | public static String?
    method GetStringOrNull (line 350) | public static String?
    method GetValueOrNull (line 359) | public static Object?
    method GetValueOrNull (line 370) | public static Object?

FILE: src/DbExtensions/Mapper.cs
  class Mapper (line 28) | abstract partial class Mapper {
    method Mapper (line 64) | protected
    method ReadMapping (line 67) | void
    method ReadMapping (line 93) | void
    method ThrowDuplicateConstructorArgument (line 252) | [DoesNotReturn]
    method ThrowDuplicateConstructorArgument (line 268) | [DoesNotReturn]
    method GetRootNode (line 284) | private protected Node
    method InitializeMappingContext2 (line 298) | partial void
    method CreateRootNode (line 301) | protected abstract Node
    method CreateSimpleProperty (line 304) | protected abstract Node?
    method CreateComplexProperty (line 307) | protected abstract Node?
    method CreateParameterNode (line 310) | protected abstract Node
    method CreateParameterNode (line 313) | protected abstract Node
    method ChooseConstructor (line 316) | static ConstructorInfo
    class MapGroup (line 336) | sealed class MapGroup(int depth, string name, string parent, Dictionar...
    type MapParam (line 351) | readonly struct MapParam {
      method MapParam (line 359) | public
      method MapParam (line 366) | public
  class MappingContext (line 375) | sealed partial class MappingContext {
  class Node (line 384) | abstract class Node {
    method GetConstructors (line 423) | public abstract ConstructorInfo[]

FILE: src/DbExtensions/Metadata/Accessors.cs
  class FieldAccessor (line 29) | static class FieldAccessor {
    method Create (line 31) | [MethodImpl(MethodImplOptions.NoInlining | MethodImplOptions.NoOptimiz...
    class Accessor (line 81) | sealed class Accessor<T, V> : MetaAccessor<T, V> {
      method Accessor (line 90) | internal
      method GetValue (line 97) | public override V
      method SetValue (line 107) | public override void
  class PropertyAccessor (line 119) | static class PropertyAccessor {
    method Create (line 121) | internal static MetaAccessor
    method CreateCollection (line 164) | internal static MetaCollectionAccessor
    class Accessor (line 184) | sealed class Accessor<T, V, V2> : MetaAccessor<T, V> where V2 : V {
      method Accessor (line 201) | internal
      method GetValue (line 211) | public override V
      method SetValue (line 215) | public override void

FILE: src/DbExtensions/Metadata/AttributedMetaModel.cs
  class AttributedMetaModel (line 27) | sealed class AttributedMetaModel : MetaModel {
    method AttributedMetaModel (line 47) | internal
    method GetTables (line 60) | public override IEnumerable<MetaTable>
    method GetTable (line 74) | public override MetaTable
    method GetTableNoLocks (line 102) | internal MetaTable
    method GetRoot (line 137) | static Type
    method GetMetaType (line 154) | public override MetaType
  class AttributedMetaTable (line 195) | sealed class AttributedMetaTable : MetaTable {
    method AttributedMetaTable (line 209) | internal
  class AttributedRootType (line 221) | sealed class AttributedRootType : AttributedMetaType {
    method AttributedRootType (line 238) | internal
    method Validate (line 327) | void
    method CreateInheritedType (line 373) | AttributedMetaType
    method GetInheritanceType (line 391) | internal override MetaType
  class AttributedMetaType (line 406) | class AttributedMetaType : MetaType {
    method AttributedMetaType (line 569) | internal
    method ValidatePrimaryKeyMember (line 586) | void
    method InitDataMembers (line 599) | void
    method InitDataMembersImpl (line 612) | void
    method InitSpecialMember (line 704) | void
    method GetDataMember (line 746) | public override MetaDataMember
    method GetInheritanceType (line 767) | internal override MetaType
    method GetTypeForInheritanceCode (line 777) | internal override MetaType
    method ToString (line 803) | public override string
  class AttributedMetaDataMember (line 807) | sealed class AttributedMetaDataMember : MetaDataMember {
    method AttributedMetaDataMember (line 1001) | internal
    method InitAccessors (line 1045) | void
    method MakeMemberAccessor (line 1076) | static MetaAccessor
    method GetValueForDatabase (line 1092) | public override object
    method IsDeclaredBy (line 1107) | public override bool
    method ToString (line 1115) | public override string
  class MetaComplexProperty (line 1120) | sealed class MetaComplexProperty {
    method MetaComplexProperty (line 1169) | public
    method InitAccessors (line 1187) | void
    method GetValueFromRoot (line 1201) | public object
  class AttributedMetaAssociation (line 1230) | sealed class AttributedMetaAssociation : MetaAssociationImpl {
    method AttributedMetaAssociation (line 1271) | internal
  class MetaAssociationImpl (line 1354) | abstract class MetaAssociationImpl : MetaAssociation {
    method MakeKeys (line 1361) | protected static ReadOnlyCollection<MetaDataMember>
    method AreEqual (line 1391) | protected static bool
    method ToString (line 1414) | public override string
  class UnmappedType (line 1419) | sealed class UnmappedType : MetaType {
    method UnmappedType (line 1532) | internal
    method GetInheritanceType (line 1539) | internal override MetaType
    method GetTypeForInheritanceCode (line 1549) | internal override MetaType
    method GetDataMember (line 1553) | public override MetaDataMember
    method InitDataMembers (line 1582) | void
    method ToString (line 1612) | public override string
  class UnmappedDataMember (line 1616) | sealed class UnmappedDataMember : MetaDataMember {
    method UnmappedDataMember (line 1700) | internal
    method InitAccessors (line 1709) | void
    method IsDeclaredBy (line 1719) | public override bool
    method MakeMemberAccessor (line 1727) | static MetaAccessor
  class InheritanceBaseFinder (line 1743) | static class InheritanceBaseFinder {
    method FindBase (line 1745) | internal static MetaType
  class InheritanceRules (line 1785) | static class InheritanceRules {
    method DistinguishedMemberName (line 1792) | internal static object
    method AreSameMember (line 1836) | internal static bool

FILE: src/DbExtensions/Metadata/Error.cs
  class Error (line 22) | static class Error {
    method ArgumentOutOfRange (line 24) | internal static Exception
    method InvalidFieldInfo (line 29) | internal static Exception
    method CouldNotCreateAccessorToProperty (line 34) | internal static Exception
    method UnableToAssignValueToReadonlyProperty (line 39) | internal static Exception
    method NoDiscriminatorFound (line 44) | internal static Exception
    method InheritanceTypeDoesNotDeriveFromRoot (line 49) | internal static Exception
    method AbstractClassAssignInheritanceDiscriminator (line 54) | internal static Exception
    method CannotGetInheritanceDefaultFromNonInheritanceClass (line 59) | internal static Exception
    method InheritanceCodeMayNotBeNull (line 64) | internal static Exception
    method InheritanceTypeHasMultipleDiscriminators (line 69) | internal static Exception
    method InheritanceCodeUsedForMultipleTypes (line 74) | internal static Exception
    method InheritanceTypeHasMultipleDefaults (line 79) | internal static Exception
    method InheritanceHierarchyDoesNotDefineDefault (line 84) | internal static Exception
    method InheritanceSubTypeIsAlsoRoot (line 89) | internal static Exception
    method NonInheritanceClassHasDiscriminator (line 94) | internal static Exception
    method MemberMappedMoreThanOnce (line 99) | internal static Exception
    method BadStorageProperty (line 104) | internal static Exception
    method IncorrectAutoSyncSpecification (line 109) | internal static Exception
    method BadKeyMember (line 114) | internal static Exception
    method UnableToResolveRootForType (line 119) | internal static Exception
    method CouldNotFindTypeFromMapping (line 124) | internal static Exception
    method TwoMembersMarkedAsPrimaryKeyAndDBGenerated (line 129) | internal static Exception
    method TwoMembersMarkedAsRowVersion (line 134) | internal static Exception
    method TwoMembersMarkedAsInheritanceDiscriminator (line 139) | internal static Exception
    method CouldNotFindRuntimeTypeForMapping (line 144) | internal static Exception
    method UnexpectedNull (line 149) | internal static Exception
    method InvalidDeleteOnNullSpecification (line 154) | internal static Exception
    method MappedMemberHadNoCorrespondingMemberInType (line 159) | internal static Exception
    method DiscriminatorClrTypeNotSupported (line 164) | internal static Exception
    method IdentityClrTypeNotSupported (line 169) | internal static Exception
    method PrimaryKeyInSubTypeNotSupported (line 174) | internal static Exception
    method MismatchedThisKeyOtherKey (line 179) | internal static Exception
    method MappingOfInterfacesMemberIsNotSupported (line 184) | internal static Exception
    method UnmappedClassMember (line 189) | internal static Exception

FILE: src/DbExtensions/Metadata/MappingSource.cs
  class MappingSource (line 28) | abstract class MappingSource {
    method GetModel (line 44) | public MetaModel
    method CreateModel (line 118) | protected abstract MetaModel
  class AttributeMappingSource (line 126) | sealed class AttributeMappingSource : MappingSource {
    method CreateModel (line 128) | protected override MetaModel

FILE: src/DbExtensions/Metadata/MappingSystem.cs
  class MappingSystem (line 26) | static class MappingSystem {
    method IsSupportedDiscriminatorType (line 34) | internal static bool
    method IsSupportedIdentityType (line 68) | internal static bool

FILE: src/DbExtensions/Metadata/MetaModel.cs
  class MetaModel (line 32) | abstract class MetaModel {
    method GetTable (line 61) | public abstract MetaTable
    method GetTables (line 69) | public abstract IEnumerable<MetaTable>
    method GetMetaType (line 76) | public abstract MetaType
  class MetaTable (line 84) | abstract class MetaTable {
  class MetaTableConfiguration (line 108) | sealed class MetaTableConfiguration {
    method MetaTableConfiguration (line 113) | public
    method MetaTableConfiguration (line 116) | internal
  class MetaType (line 127) | abstract class MetaType {
    method GetInheritanceType (line 254) | internal abstract MetaType
    method GetTypeForInheritanceCode (line 263) | internal abstract MetaType
    method GetDataMember (line 316) | public abstract MetaDataMember
  class MetaDataMember (line 324) | abstract class MetaDataMember {
    method IsDeclaredBy (line 386) | public abstract bool
    method GetValueForDatabase (line 488) | public virtual object
    method ConvertValueForDatabase (line 496) | public object
  class MetaAssociation (line 513) | abstract class MetaAssociation {
    method LoadCollection (line 608) | public void
  class MetaAccessor (line 632) | abstract class MetaAccessor {
    method GetBoxedValue (line 647) | public abstract object
    method SetBoxedValue (line 656) | public abstract void
    method HasValue (line 663) | internal virtual bool
    method HasAssignedValue (line 670) | internal virtual bool
    method HasLoadedValue (line 677) | internal virtual bool
    method SetBoxedValue (line 701) | public override void
    method GetBoxedValue (line 713) | public override object
    method GetValue (line 721) | public abstract TMember
    method SetValue (line 728) | public abstract void
  class MetaAccessor (line 688) | abstract class MetaAccessor<TEntity, TMember> : MetaAccessor {
    method GetBoxedValue (line 647) | public abstract object
    method SetBoxedValue (line 656) | public abstract void
    method HasValue (line 663) | internal virtual bool
    method HasAssignedValue (line 670) | internal virtual bool
    method HasLoadedValue (line 677) | internal virtual bool
    method SetBoxedValue (line 701) | public override void
    method GetBoxedValue (line 713) | public override object
    method GetValue (line 721) | public abstract TMember
    method SetValue (line 728) | public abstract void
  class MetaCollectionAccessor (line 732) | abstract class MetaCollectionAccessor : MetaAccessor {
    method AddBoxedElement (line 737) | public abstract void
    method GetOrCreateBoxed (line 740) | public abstract object
    method MetaCollectionAccessor (line 761) | internal
    method CreateFactory (line 771) | static Func<TCollection>
    method GetOrCreateBoxed (line 780) | public override object
    method GetValue (line 794) | public TCollection
    method SetValue (line 798) | public void
    method AddElement (line 802) | public void
    method SetBoxedValue (line 806) | public override void
    method GetBoxedValue (line 810) | public override object
    method AddBoxedElement (line 814) | public override void
  class MetaCollectionAccessor (line 744) | sealed class MetaCollectionAccessor<TContainer, TCollection, TElement> :...
    method AddBoxedElement (line 737) | public abstract void
    method GetOrCreateBoxed (line 740) | public abstract object
    method MetaCollectionAccessor (line 761) | internal
    method CreateFactory (line 771) | static Func<TCollection>
    method GetOrCreateBoxed (line 780) | public override object
    method GetValue (line 794) | public TCollection
    method SetValue (line 798) | public void
    method AddElement (line 802) | public void
    method SetBoxedValue (line 806) | public override void
    method GetBoxedValue (line 810) | public override object
    method AddBoxedElement (line 814) | public override void

FILE: src/DbExtensions/Metadata/TypeSystem.cs
  class TypeSystem (line 25) | static class TypeSystem {
    method IsSequenceType (line 27) | internal static bool
    method FindIEnumerable (line 36) | static Type
    method GetElementType (line 82) | internal static Type
    method IsNullableType (line 94) | internal static bool
    method GetMemberType (line 102) | internal static Type
    method GetAllFields (line 120) | internal static IEnumerable<FieldInfo>
    method GetAllProperties (line 143) | internal static IEnumerable<PropertyInfo>
    method IsPrivate (line 165) | static bool
  type MetaPosition (line 184) | struct MetaPosition : IEqualityComparer<MetaPosition>, IEqualityComparer {
    method MetaPosition (line 192) | internal
    method MetaPosition (line 196) | private
    method Equals (line 206) | public override bool
    method GetHashCode (line 220) | public override int
    method Equals (line 223) | public bool
    method GetHashCode (line 227) | public int
    method Equals (line 231) | bool
    method GetHashCode (line 235) | int
    method AreEqual (line 239) | static bool

FILE: src/DbExtensions/PocoMapper.cs
  class Database (line 31) | partial class Database {
    method Map (line 41) | public IEnumerable<TResult>
    method AsyncMap (line 53) | public IAsyncEnumerable<TResult>
    method Map (line 72) | public IEnumerable<object>
    method AsyncMap (line 85) | public IAsyncEnumerable<object>
    method CreatePocoMapper (line 96) | internal PocoMapper
  class SqlSet (line 105) | partial class SqlSet {
    method Initialize2 (line 110) | partial void
    method Initialize3 (line 120) | partial void
    method AddManyInclude (line 123) | private protected void
    method PocoMap (line 129) | partial void
    method PocoAsyncMap (line 137) | partial void
    method CreatePocoMapper (line 145) | private protected PocoMapper
    method WithManyInclude (line 163) | [EditorBrowsable(EditorBrowsableState.Never)]
    method PocoMap (line 173) | partial void
    method PocoAsyncMap (line 181) | partial void
  class SqlSet (line 158) | partial class SqlSet<TResult> {
    method Initialize2 (line 110) | partial void
    method Initialize3 (line 120) | partial void
    method AddManyInclude (line 123) | private protected void
    method PocoMap (line 129) | partial void
    method PocoAsyncMap (line 137) | partial void
    method CreatePocoMapper (line 145) | private protected PocoMapper
    method WithManyInclude (line 163) | [EditorBrowsable(EditorBrowsableState.Never)]
    method PocoMap (line 173) | partial void
    method PocoAsyncMap (line 181) | partial void
  class Mapper (line 190) | partial class Mapper {
    method InitializeMappingContext2 (line 192) | partial void
    method InitializeMappingContext3 (line 202) | partial void
  class PocoMapper (line 206) | sealed class PocoMapper : Mapper {
    method PocoMapper (line 229) | public
    method PocoMap (line 234) | public object
    method PocoLoad (line 254) | public void
    method BuildCacheKey (line 272) | static CacheKey
    method GetManyLoaders (line 301) | internal Dictionary<int, List<Action<object>>>?
    method CreateRootNode (line 330) | protected override Node
    method CreateSimpleProperty (line 334) | protected override Node?
    method CreateComplexProperty (line 347) | protected override Node?
    method CreateParameterNode (line 360) | protected override Node
    method CreateParameterNode (line 364) | protected override Node
    method GetProperty (line 368) | static PropertyInfo?
    type CacheKey (line 384) | readonly record struct CacheKey(Type Type, string Names);
    type CacheArg (line 386) | readonly record struct CacheArg(PocoMapper Mapper, DbDataReader Record);
  class MappingContext (line 389) | partial class MappingContext {
    method LoadMany (line 394) | public void
  class PocoNode (line 415) | sealed partial class PocoNode : Node {
    method PocoNode (line 458) | internal
    method PocoNode (line 470) | internal
    method PocoNode (line 478) | internal
    method GetConstructors (line 485) | public override ConstructorInfo[]
    method GetPropertyPath (line 489) | string
    method IsInParameter (line 508) | bool
    method ToString (line 513) | public override string
    method CompileMap (line 527) | internal Func<DbDataReader, MappingContext, object>
    method CompileLoad (line 545) | internal Action<DbDataReader, MappingContext, object>
    method GenerateExpressionNullable (line 568) | ParameterExpression
    method GenerateExpression (line 653) | ParameterExpression
    method GenerateExpressionComplex (line 663) | ParameterExpression
    method GenerateLoad (line 700) | void
    method GenerateExpressionSimple (line 770) | ParameterExpression
    method GetAllOrdinals (line 847) | IEnumerable<int>
    method GetConvertToType (line 876) | partial void
    class References (line 879) | static partial class References {

FILE: src/DbExtensions/SqlBuilder.cs
  type ISqlFragment (line 32) | interface ISqlFragment {
    method ToString (line 37) | string
  class SqlBuilder (line 46) | [CLSCompliant(true)]
    method JoinSql (line 127) | public static SqlBuilder
    method JoinSql (line 172) | public static SqlBuilder
    method SqlBuilder (line 208) | public
    method SqlBuilder (line 215) | private
    method SqlBuilder (line 235) | [EditorBrowsable(EditorBrowsableState.Never)]
    method PlaceholderLengthSum (line 248) | static int
    method AppendLiteral (line 273) | [EditorBrowsable(EditorBrowsableState.Never)]
    method AppendFormatted (line 280) | [EditorBrowsable(EditorBrowsableState.Never)]
    method AppendClause (line 291) | public SqlBuilder
    method AppendClause (line 301) | public SqlBuilder
    method AppendSql (line 340) | public SqlBuilder
    method AppendFragment (line 349) | internal SqlBuilder
    method AppendFragment (line 356) | void
    method Append (line 388) | public SqlBuilder
    method Append (line 398) | public SqlBuilder
    method AppendPlaceholder (line 405) | internal void
    method AppendPlaceholderSql (line 459) | void
    method GetDefiningQueryFromObject (line 471) | static partial void
    method AppendIf (line 481) | public SqlBuilder
    method AppendElseIf (line 496) | public SqlBuilder
    method AppendElse (line 513) | public SqlBuilder
    method AppendLine (line 528) | public SqlBuilder
    method InsertText (line 542) | public SqlBuilder
    method SetCurrentClause (line 556) | public SqlBuilder
    method SetCurrentClause (line 567) | public SqlBuilder
    method SetNextClause (line 581) | public SqlBuilder
    method SetNextClause (line 592) | public SqlBuilder
    method ToString (line 605) | public override string
    method Clone (line 613) | public SqlBuilder
    method _ (line 623) | [CLSCompliant(false)]
    method _ (line 634) | [CLSCompliant(false)]
    method _If (line 646) | [CLSCompliant(false)]
    method _ElseIf (line 662) | [CLSCompliant(false)]
    method _Else (line 682) | [CLSCompliant(false)]
    method WITH (line 694) | public SqlBuilder
    method WITH (line 704) | public SqlBuilder
    method WITH (line 716) | public SqlBuilder
    method SELECT (line 738) | public SqlBuilder
    method SELECT (line 748) | public SqlBuilder
    method SELECT (line 758) | public SqlBuilder
    method FROM (line 768) | public SqlBuilder
    method FROM (line 778) | public SqlBuilder
    method FROM (line 788) | public SqlBuilder
    method FROM (line 800) | public SqlBuilder
    method JOIN (line 822) | public SqlBuilder
    method JOIN (line 832) | public SqlBuilder
    method JOIN (line 842) | public SqlBuilder
    method LEFT_JOIN (line 852) | public SqlBuilder
    method LEFT_JOIN (line 862) | public SqlBuilder
    method LEFT_JOIN (line 872) | public SqlBuilder
    method RIGHT_JOIN (line 882) | public SqlBuilder
    method RIGHT_JOIN (line 892) | public SqlBuilder
    method RIGHT_JOIN (line 902) | public SqlBuilder
    method INNER_JOIN (line 912) | public SqlBuilder
    method INNER_JOIN (line 922) | public SqlBuilder
    method INNER_JOIN (line 932) | public SqlBuilder
    method CROSS_JOIN (line 942) | public SqlBuilder
    method CROSS_JOIN (line 952) | public SqlBuilder
    method CROSS_JOIN (line 962) | public SqlBuilder
    method WHERE (line 972) | public SqlBuilder
    method WHERE (line 982) | public SqlBuilder
    method WHERE (line 992) | public SqlBuilder
    method GROUP_BY (line 1002) | public SqlBuilder
    method GROUP_BY (line 1012) | public SqlBuilder
    method GROUP_BY (line 1022) | public SqlBuilder
    method HAVING (line 1032) | public SqlBuilder
    method HAVING (line 1042) | public SqlBuilder
    method HAVING (line 1052) | public SqlBuilder
    method ORDER_BY (line 1062) | public SqlBuilder
    method ORDER_BY (line 1072) | public SqlBuilder
    method ORDER_BY (line 1082) | public SqlBuilder
    method LIMIT (line 1092) | public SqlBuilder
    method LIMIT (line 1102) | public SqlBuilder
    method LIMIT (line 1112) | public SqlBuilder
    method LIMIT (line 1122) | public SqlBuilder
    method OFFSET (line 1142) | public SqlBuilder
    method OFFSET (line 1152) | public SqlBuilder
    method OFFSET (line 1162) | public SqlBuilder
    method OFFSET (line 1172) | public SqlBuilder
    method UNION (line 1191) | public SqlBuilder
    method INSERT_INTO (line 1201) | public SqlBuilder
    method INSERT_INTO (line 1211) | public SqlBuilder
    method DELETE_FROM (line 1221) | public SqlBuilder
    method DELETE_FROM (line 1231) | public SqlBuilder
    method UPDATE (line 1241) | public SqlBuilder
    method UPDATE (line 1251) | public SqlBuilder
    method SET (line 1261) | public SqlBuilder
    method SET (line 1271) | public SqlBuilder
    method VALUES (line 1281) | public SqlBuilder
    method VALUES (line 1291) | public SqlBuilder
    type AppendStringHandler (line 1325) | [EditorBrowsable(EditorBrowsableState.Never)]
      method AppendStringHandler (line 1334) | public
      method AppendStringHandler (line 1344) | public
      method AppendLiteral (line 1356) | public void
      method AppendFormatted (line 1362) | public void
    type AppendElseStringHandler (line 1369) | [EditorBrowsable(EditorBrowsableState.Never)]
      method AppendElseStringHandler (line 1378) | public
      method AppendElseStringHandler (line 1384) | public
      method AppendLiteral (line 1399) | public void
      method AppendFormatted (line 1405) | public void
    type ClauseStringHandler (line 1412) | [EditorBrowsable(EditorBrowsableState.Never)]
      method ClauseStringHandler (line 1421) | public
      method ClauseStringHandler (line 1427) | public
      method AppendLiteral (line 1439) | public void
      method AppendFormatted (line 1445) | public void
    type ConditionalStringHandler (line 1452) | [EditorBrowsable(EditorBrowsableState.Never)]
      method ConditionalStringHandler (line 1461) | public
      method AppendLiteral (line 1477) | public void
      method AppendFormatted (line 1483) | public void
    type ConditionalElseStringHandler (line 1490) | [EditorBrowsable(EditorBrowsableState.Never)]
      method ConditionalElseStringHandler (line 1499) | public
      method ConditionalElseStringHandler (line 1505) | public
      method AppendLiteral (line 1524) | public void
      method AppendFormatted (line 1530) | public void
  class SQL (line 1541) | public static partial class SQL {
    method WITH (line 1552) | public static SqlBuilder
    method WITH (line 1565) | public static SqlBuilder
    method WITH (line 1580) | public static SqlBuilder
    method SELECT (line 1598) | public static SqlBuilder
    method SELECT (line 1611) | public static SqlBuilder
    method INSERT_INTO (line 1624) | public static SqlBuilder
    method INSERT_INTO (line 1637) | public static SqlBuilder
    method UPDATE (line 1650) | public static SqlBuilder
    method UPDATE (line 1663) | public static SqlBuilder
    method DELETE_FROM (line 1676) | public static SqlBuilder
    method DELETE_FROM (line 1689) | public static SqlBuilder
    method Equals (line 1697) | [EditorBrowsable(EditorBrowsableState.Never)]
    method ReferenceEquals (line 1704) | [EditorBrowsable(EditorBrowsableState.Never)]
  type SqlClause (line 1716) | public abstract record class SqlClause(string? Name, string? Separator) {

FILE: src/DbExtensions/SqlSet.Async.cs
  class SqlSet (line 25) | partial class SqlSet {
    method AsyncMap (line 27) | private protected virtual IAsyncEnumerable<object>
    method PocoAsyncMap (line 47) | partial void
    method DynamicAsyncMap (line 50) | partial void
    method AsAsyncEnumerable (line 57) | public IAsyncEnumerable<object>
    method AsAsyncEnumerable (line 61) | IAsyncEnumerable<object>
    method AllAsync (line 68) | public async ValueTask<bool>
    method AllAsync (line 80) | public async ValueTask<bool>
    method AnyAsync (line 94) | public async ValueTask<bool>
    method AnyAsync (line 107) | public async ValueTask<bool>
    method AnyAsync (line 118) | public async ValueTask<bool>
    method CountAsync (line 129) | public async ValueTask<int>
    method CountAsync (line 142) | public async ValueTask<int>
    method CountAsync (line 153) | public async ValueTask<int>
    method FirstAsync (line 164) | public async ValueTask<object>
    method FirstAsync (line 176) | public async ValueTask<object>
    method FirstAsync (line 187) | public async ValueTask<object>
    method FirstOrDefaultAsync (line 198) | public async ValueTask<object?>
    method FirstOrDefaultAsync (line 210) | public async ValueTask<object?>
    method FirstOrDefaultAsync (line 221) | public async ValueTask<object?>
    method GetAsyncEnumerator (line 235) | public IAsyncEnumerator<object>
    method LongCountAsync (line 242) | public async ValueTask<long>
    method LongCountAsync (line 255) | public async ValueTask<long>
    method LongCountAsync (line 266) | public async ValueTask<long>
    method SingleAsync (line 277) | public async ValueTask<object>
    method SingleAsync (line 288) | public async ValueTask<object>
    method SingleAsync (line 299) | public async ValueTask<object>
    method SingleOrDefaultAsync (line 310) | public async ValueTask<object?>
    method SingleOrDefaultAsync (line 321) | public async ValueTask<object?>
    method SingleOrDefaultAsync (line 332) | public async ValueTask<object?>
    method ToArrayAsync (line 343) | public async ValueTask<object[]>
    method ToListAsync (line 354) | public async ValueTask<List<object>>
    method AsyncMap (line 365) | private protected override IAsyncEnumerable<object>
    method AsyncMapTyped (line 378) | IAsyncEnumerable<TResult>
    method PocoAsyncMap (line 395) | partial void
    method AsAsyncEnumerable (line 402) | public new IAsyncEnumerable<TResult>
    method AsAsyncEnumerable (line 406) | IAsyncEnumerable<TResult>
    method FirstAsync (line 412) | public new async ValueTask<TResult>
    method FirstAsync (line 423) | public new async ValueTask<TResult>
    method FirstAsync (line 433) | public new async ValueTask<TResult>
    method FirstOrDefaultAsync (line 443) | public new async ValueTask<TResult?>
    method FirstOrDefaultAsync (line 454) | public new async ValueTask<TResult?>
    method FirstOrDefaultAsync (line 464) | public new async ValueTask<TResult?>
    method GetAsyncEnumerator (line 478) | public new IAsyncEnumerator<TResult>
    method SingleAsync (line 484) | public new async ValueTask<TResult>
    method SingleAsync (line 494) | public new async ValueTask<TResult>
    method SingleAsync (line 504) | public new async ValueTask<TResult>
    method SingleOrDefaultAsync (line 514) | public new async ValueTask<TResult?>
    method SingleOrDefaultAsync (line 524) | public new async ValueTask<TResult?>
    method SingleOrDefaultAsync (line 534) | public new async ValueTask<TResult?>
    method ToArrayAsync (line 544) | public new async ValueTask<TResult[]>
    method ToListAsync (line 555) | public new async ValueTask<List<TResult>>
  class SqlSet (line 363) | partial class SqlSet<TResult> {
    method AsyncMap (line 27) | private protected virtual IAsyncEnumerable<object>
    method PocoAsyncMap (line 47) | partial void
    method DynamicAsyncMap (line 50) | partial void
    method AsAsyncEnumerable (line 57) | public IAsyncEnumerable<object>
    method AsAsyncEnumerable (line 61) | IAsyncEnumerable<object>
    method AllAsync (line 68) | public async ValueTask<bool>
    method AllAsync (line 80) | public async ValueTask<bool>
    method AnyAsync (line 94) | public async ValueTask<bool>
    method AnyAsync (line 107) | public async ValueTask<bool>
    method AnyAsync (line 118) | public async ValueTask<bool>
    method CountAsync (line 129) | public async ValueTask<int>
    method CountAsync (line 142) | public async ValueTask<int>
    method CountAsync (line 153) | public async ValueTask<int>
    method FirstAsync (line 164) | public async ValueTask<object>
    method FirstAsync (line 176) | public async ValueTask<object>
    method FirstAsync (line 187) | public async ValueTask<object>
    method FirstOrDefaultAsync (line 198) | public async ValueTask<object?>
    method FirstOrDefaultAsync (line 210) | public async ValueTask<object?>
    method FirstOrDefaultAsync (line 221) | public async ValueTask<object?>
    method GetAsyncEnumerator (line 235) | public IAsyncEnumerator<object>
    method LongCountAsync (line 242) | public async ValueTask<long>
    method LongCountAsync (line 255) | public async ValueTask<long>
    method LongCountAsync (line 266) | public async ValueTask<long>
    method SingleAsync (line 277) | public async ValueTask<object>
    method SingleAsync (line 288) | public async ValueTask<object>
    method SingleAsync (line 299) | public async ValueTask<object>
    method SingleOrDefaultAsync (line 310) | public async ValueTask<object?>
    method SingleOrDefaultAsync (line 321) | public async ValueTask<object?>
    method SingleOrDefaultAsync (line 332) | public async ValueTask<object?>
    method ToArrayAsync (line 343) | public async ValueTask<object[]>
    method ToListAsync (line 354) | public async ValueTask<List<object>>
    method AsyncMap (line 365) | private protected override IAsyncEnumerable<object>
    method AsyncMapTyped (line 378) | IAsyncEnumerable<TResult>
    method PocoAsyncMap (line 395) | partial void
    method AsAsyncEnumerable (line 402) | public new IAsyncEnumerable<TResult>
    method AsAsyncEnumerable (line 406) | IAsyncEnumerable<TResult>
    method FirstAsync (line 412) | public new async ValueTask<TResult>
    method FirstAsync (line 423) | public new async ValueTask<TResult>
    method FirstAsync (line 433) | public new async ValueTask<TResult>
    method FirstOrDefaultAsync (line 443) | public new async ValueTask<TResult?>
    method FirstOrDefaultAsync (line 454) | public new async ValueTask<TResult?>
    method FirstOrDefaultAsync (line 464) | public new async ValueTask<TResult?>
    method GetAsyncEnumerator (line 478) | public new IAsyncEnumerator<TResult>
    method SingleAsync (line 484) | public new async ValueTask<TResult>
    method SingleAsync (line 494) | public new async ValueTask<TResult>
    method SingleAsync (line 504) | public new async ValueTask<TResult>
    method SingleOrDefaultAsync (line 514) | public new async ValueTask<TResult?>
    method SingleOrDefaultAsync (line 524) | public new async ValueTask<TResult?>
    method SingleOrDefaultAsync (line 534) | public new async ValueTask<TResult?>
    method ToArrayAsync (line 544) | public new async ValueTask<TResult[]>
    method ToListAsync (line 555) | public new async ValueTask<List<TResult>>
  type ISqlSet (line 564) | partial interface ISqlSet<TSqlSet, TSource> {
    method AllAsync (line 566) | ValueTask<bool>
    method AllAsync (line 569) | ValueTask<bool>
    method AnyAsync (line 572) | ValueTask<bool>
    method AnyAsync (line 575) | ValueTask<bool>
    method AsAsyncEnumerable (line 578) | IAsyncEnumerable<TSource>
    method CountAsync (line 581) | ValueTask<int>
    method CountAsync (line 584) | ValueTask<int>
    method CountAsync (line 587) | ValueTask<int>
    method FirstAsync (line 590) | ValueTask<TSource>
    method FirstAsync (line 593) | ValueTask<TSource>
    method FirstAsync (line 596) | ValueTask<TSource>
    method FirstOrDefaultAsync (line 599) | ValueTask<TSource?>
    method FirstOrDefaultAsync (line 602) | ValueTask<TSource?>
    method FirstOrDefaultAsync (line 605) | ValueTask<TSource?>
    method GetAsyncEnumerator (line 608) | IAsyncEnumerator<TSource>
    method LongCountAsync (line 611) | ValueTask<long>
    method LongCountAsync (line 614) | ValueTask<long>
    method LongCountAsync (line 617) | ValueTask<long>
    method SingleAsync (line 620) | ValueTask<TSource>
    method SingleAsync (line 623) | ValueTask<TSource>
    method SingleAsync (line 626) | ValueTask<TSource>
    method SingleOrDefaultAsync (line 629) | ValueTask<TSource?>
    method SingleOrDefaultAsync (line 632) | ValueTask<TSource?>
    method SingleOrDefaultAsync (line 635) | ValueTask<TSource?>
    method ToArrayAsync (line 638) | ValueTask<TSource[]>
    method ToListAsync (line 641) | ValueTask<List<TSource>>

FILE: src/DbExtensions/SqlSet.cs
  class SqlBuilder (line 29) | partial class SqlBuilder {
    method WITH (line 39) | public SqlBuilder
    method FROM (line 56) | public SqlBuilder
    method GetDefiningQueryFromObject (line 65) | static partial void
  class SQL (line 70) | static partial class SQL {
    method WITH (line 83) | public static SqlBuilder
  class Database (line 93) | partial class Database {
    method From (line 101) | public SqlSet
    method From (line 108) | public SqlSet
    method From (line 123) | public SqlSet<TResult>
    method From (line 134) | [EditorBrowsable(EditorBrowsableState.Never)]
    method FromQuery (line 149) | public SqlSet
    method FromQuery (line 156) | public SqlSet
    method FromQuery (line 171) | public SqlSet<TResult>
    method FromQuery (line 185) | public SqlSet<TResult>
  class SqlSet (line 203) | public partial class SqlSet : ISqlSet<SqlSet, object> {
    method SqlSet (line 239) | internal
    method SqlSet (line 247) | internal
    method SqlSet (line 257) | private protected
    method SqlSet (line 264) | private protected
    method SqlSet (line 273) | private
    method Initialize2 (line 287) | partial void
    method GetDefiningQuery (line 295) | public SqlBuilder
    method GetDefiningQuery (line 299) | private protected SqlBuilder
    method BuildQuery (line 337) | SqlBuilder
    method BuildQuery_Default (line 352) | SqlBuilder
    method BuildQuery_TSql (line 388) | SqlBuilder
    method CreateSuperQuery (line 478) | SqlBuilder
    method CreateSet (line 495) | private protected virtual SqlSet
    method CreateSet (line 499) | private protected virtual SqlSet
    method CreateSet (line 503) | SqlSet<TResult>
    method CreateSet (line 507) | SqlSet<TResult>
    method Clone (line 511) | private protected SqlSet
    method CreateBufferedSet (line 515) | SqlSet
    method CreateBufferedSet (line 531) | SqlSet<TResult>
    method Map (line 547) | private protected virtual IEnumerable
    method PocoMap (line 567) | partial void
    method DynamicMap (line 570) | partial void
    method All (line 581) | public bool
    method All (line 591) | public bool
    method Any (line 606) | public bool
    method AnyImplParams (line 615) | (SqlBuilder, Func<DbDataReader, bool>)
    method Any (line 633) | public bool
    method Any (line 639) | public bool
    method AsEnumerable (line 648) | public IEnumerable<object>
    method AsEnumerable (line 652) | IEnumerable<object>
    method Cast (line 662) | public SqlSet<TResult>
    method Cast (line 680) | public SqlSet
    method Count (line 700) | public int
    method Count (line 716) | public int
    method Count (line 722) | public int
    method CountImplParams (line 726) | (SqlBuilder, Func<DbDataReader, int>)
    method First (line 745) | public object
    method First (line 756) | public object
    method First (line 762) | public object
    method FirstOrDefault (line 771) | public object?
    method FirstOrDefault (line 784) | public object?
    method FirstOrDefault (line 790) | public object?
    method GetEnumerator (line 799) | public IEnumerator<object>
    method LongCount (line 809) | public long
    method LongCount (line 825) | public long
    method LongCount (line 831) | public long
    method LongCountImplParams (line 835) | (SqlBuilder, Func<DbDataReader, long>)
    method OrderBy (line 854) | public SqlSet
    method OrderBy (line 864) | public SqlSet
    method OrderBy (line 868) | SqlSet
    method Select (line 891) | public SqlSet<TResult>
    method Select (line 901) | public SqlSet<TResult>
    method Select (line 913) | public SqlSet<TResult>
    method Select (line 924) | public SqlSet<TResult>
    method Select (line 939) | public SqlSet
    method Select (line 950) | public SqlSet
    method Select (line 964) | public SqlSet
    method Select (line 974) | public SqlSet
    method Single (line 984) | public object
    method Single (line 995) | public object
    method Single (line 1001) | public object
    method SingleOrDefault (line 1011) | public object?
    method SingleOrDefault (line 1021) | public object?
    method SingleOrDefault (line 1027) | public object?
    method Skip (line 1037) | public SqlSet
    method Take (line 1059) | public SqlSet
    method ToArray (line 1080) | public object[]
    method ToList (line 1088) | public List<object>
    method Where (line 1097) | public SqlSet
    method Where (line 1107) | public SqlSet
    method Where (line 1111) | SqlSet
    method Equals (line 1130) | [EditorBrowsable(EditorBrowsableState.Never)]
    method GetHashCode (line 1136) | [EditorBrowsable(EditorBrowsableState.Never)]
    method GetType (line 1142) | [EditorBrowsable(EditorBrowsableState.Never)]
    method ToString (line 1151) | public override string
    type SqlBuffer (line 1155) | internal record struct SqlBuffer(ISqlFragment? Where = null, ISqlFragm...
    class SqlFragment (line 1165) | sealed class SqlFragment(string text, IList<object?>? parameters = nul...
      method ToString (line 1170) | public override string
    type FetchClause (line 1174) | sealed record class FetchClause() : SqlClause("FETCH", null);
    type OperatorStringHandler (line 1178) | [EditorBrowsable(EditorBrowsableState.Never)]
      method OperatorStringHandler (line 1190) | public
      method AppendLiteral (line 1197) | public void
      method AppendFormatted (line 1203) | public void
    method SqlSet (line 1223) | internal
    method SqlSet (line 1227) | internal
    method SqlSet (line 1234) | internal
    method SqlSet (line 1241) | private
    method SqlSet (line 1248) | private
    method SqlSet (line 1257) | internal
    method SqlSet (line 1266) | internal
    method CreateSet (line 1270) | private protected override SqlSet
    method CreateSet (line 1280) | private protected override SqlSet
    method Map (line 1290) | private protected override IEnumerable<TResult>
    method PocoMap (line 1307) | partial void
    method AsEnumerable (line 1317) | public new IEnumerable<TResult>
    method AsEnumerable (line 1321) | IEnumerable<TResult>
    method Cast (line 1331) | [EditorBrowsable(EditorBrowsableState.Never)]
    method Cast (line 1337) | [EditorBrowsable(EditorBrowsableState.Never)]
    method First (line 1344) | public new TResult
    method First (line 1350) | public new TResult
    method First (line 1356) | public new TResult
    method FirstOrDefault (line 1362) | public new TResult?
    method FirstOrDefault (line 1368) | public new TResult?
    method FirstOrDefault (line 1374) | public new TResult?
    method GetEnumerator (line 1383) | public new IEnumerator<TResult>
    method OrderBy (line 1390) | public new SqlSet<TResult>
    method OrderBy (line 1397) | public new SqlSet<TResult>
    method Single (line 1403) | public new TResult
    method Single (line 1409) | public new TResult
    method Single (line 1415) | public new TResult
    method SingleOrDefault (line 1421) | public new TResult?
    method SingleOrDefault (line 1427) | public new TResult?
    method SingleOrDefault (line 1433) | public new TResult?
    method Skip (line 1440) | public new SqlSet<TResult>
    method Take (line 1447) | public new SqlSet<TResult>
    method ToArray (line 1453) | public new TResult[]
    method ToList (line 1461) | public new List<TResult>
    method Where (line 1467) | public new SqlSet<TResult>
    method Where (line 1474) | public new SqlSet<TResult>
  class SqlSet (line 1218) | public partial class SqlSet<TResult> : SqlSet, ISqlSet<SqlSet<TResult>, ...
    method SqlSet (line 239) | internal
    method SqlSet (line 247) | internal
    method SqlSet (line 257) | private protected
    method SqlSet (line 264) | private protected
    method SqlSet (line 273) | private
    method Initialize2 (line 287) | partial void
    method GetDefiningQuery (line 295) | public SqlBuilder
    method GetDefiningQuery (line 299) | private protected SqlBuilder
    method BuildQuery (line 337) | SqlBuilder
    method BuildQuery_Default (line 352) | SqlBuilder
    method BuildQuery_TSql (line 388) | SqlBuilder
    method CreateSuperQuery (line 478) | SqlBuilder
    method CreateSet (line 495) | private protected virtual SqlSet
    method CreateSet (line 499) | private protected virtual SqlSet
    method CreateSet (line 503) | SqlSet<TResult>
    method CreateSet (line 507) | SqlSet<TResult>
    method Clone (line 511) | private protected SqlSet
    method CreateBufferedSet (line 515) | SqlSet
    method CreateBufferedSet (line 531) | SqlSet<TResult>
    method Map (line 547) | private protected virtual IEnumerable
    method PocoMap (line 567) | partial void
    method DynamicMap (line 570) | partial void
    method All (line 581) | public bool
    method All (line 591) | public bool
    method Any (line 606) | public bool
    method AnyImplParams (line 615) | (SqlBuilder, Func<DbDataReader, bool>)
    method Any (line 633) | public bool
    method Any (line 639) | public bool
    method AsEnumerable (line 648) | public IEnumerable<object>
    method AsEnumerable (line 652) | IEnumerable<object>
    method Cast (line 662) | public SqlSet<TResult>
    method Cast (line 680) | public SqlSet
    method Count (line 700) | public int
    method Count (line 716) | public int
    method Count (line 722) | public int
    method CountImplParams (line 726) | (SqlBuilder, Func<DbDataReader, int>)
    method First (line 745) | public object
    method First (line 756) | public object
    method First (line 762) | public object
    method FirstOrDefault (line 771) | public object?
    method FirstOrDefault (line 784) | public object?
    method FirstOrDefault (line 790) | public object?
    method GetEnumerator (line 799) | public IEnumerator<object>
    method LongCount (line 809) | public long
    method LongCount (line 825) | public long
    method LongCount (line 831) | public long
    method LongCountImplParams (line 835) | (SqlBuilder, Func<DbDataReader, long>)
    method OrderBy (line 854) | public SqlSet
    method OrderBy (line 864) | public SqlSet
    method OrderBy (line 868) | SqlSet
    method Select (line 891) | public SqlSet<TResult>
    method Select (line 901) | public SqlSet<TResult>
    method Select (line 913) | public SqlSet<TResult>
    method Select (line 924) | public SqlSet<TResult>
    method Select (line 939) | public SqlSet
    method Select (line 950) | public SqlSet
    method Select (line 964) | public SqlSet
    method Select (line 974) | public SqlSet
    method Single (line 984) | public object
    method Single (line 995) | public object
    method Single (line 1001) | public object
    method SingleOrDefault (line 1011) | public object?
    method SingleOrDefault (line 1021) | public object?
    method SingleOrDefault (line 1027) | public object?
    method Skip (line 1037) | public SqlSet
    method Take (line 1059) | public SqlSet
    method ToArray (line 1080) | public object[]
    method ToList (line 1088) | public List<object>
    method Where (line 1097) | public SqlSet
    method Where (line 1107) | public SqlSet
    method Where (line 1111) | SqlSet
    method Equals (line 1130) | [EditorBrowsable(EditorBrowsableState.Never)]
    method GetHashCode (line 1136) | [EditorBrowsable(EditorBrowsableState.Never)]
    method GetType (line 1142) | [EditorBrowsable(EditorBrowsableState.Never)]
    method ToString (line 1151) | public override string
    type SqlBuffer (line 1155) | internal record struct SqlBuffer(ISqlFragment? Where = null, ISqlFragm...
    class SqlFragment (line 1165) | sealed class SqlFragment(string text, IList<object?>? parameters = nul...
      method ToString (line 1170) | public override string
    type FetchClause (line 1174) | sealed record class FetchClause() : SqlClause("FETCH", null);
    type OperatorStringHandler (line 1178) | [EditorBrowsable(EditorBrowsableState.Never)]
      method OperatorStringHandler (line 1190) | public
      method AppendLiteral (line 1197) | public void
      method AppendFormatted (line 1203) | public void
    method SqlSet (line 1223) | internal
    method SqlSet (line 1227) | internal
    method SqlSet (line 1234) | internal
    method SqlSet (line 1241) | private
    method SqlSet (line 1248) | private
    method SqlSet (line 1257) | internal
    method SqlSet (line 1266) | internal
    method CreateSet (line 1270) | private protected override SqlSet
    method CreateSet (line 1280) | private protected override SqlSet
    method Map (line 1290) | private protected override IEnumerable<TResult>
    method PocoMap (line 1307) | partial void
    method AsEnumerable (line 1317) | public new IEnumerable<TResult>
    method AsEnumerable (line 1321) | IEnumerable<TResult>
    method Cast (line 1331) | [EditorBrowsable(EditorBrowsableState.Never)]
    method Cast (line 1337) | [EditorBrowsable(EditorBrowsableState.Never)]
    method First (line 1344) | public new TResult
    method First (line 1350) | public new TResult
    method First (line 1356) | public new TResult
    method FirstOrDefault (line 1362) | public new TResult?
    method FirstOrDefault (line 1368) | public new TResult?
    method FirstOrDefault (line 1374) | public new TResult?
    method GetEnumerator (line 1383) | public new IEnumerator<TResult>
    method OrderBy (line 1390) | public new SqlSet<TResult>
    method OrderBy (line 1397) | public new SqlSet<TResult>
    method Single (line 1403) | public new TResult
    method Single (line 1409) | public new TResult
    method Single (line 1415) | public new TResult
    method SingleOrDefault (line 1421) | public new TResult?
    method SingleOrDefault (line 1427) | public new TResult?
    method SingleOrDefault (line 1433) | public new TResult?
    method Skip (line 1440) | public new SqlSet<TResult>
    method Take (line 1447) | public new SqlSet<TResult>
    method ToArray (line 1453) | public new TResult[]
    method ToList (line 1461) | public new List<TResult>
    method Where (line 1467) | public new SqlSet<TResult>
    method Where (line 1474) | public new SqlSet<TResult>
  type ISqlSet (line 1479) | partial interface ISqlSet<TSqlSet, TSource> where TSqlSet : SqlSet {
    method All (line 1481) | bool
    method All (line 1484) | bool
    method Any (line 1487) | bool
    method Any (line 1490) | bool
    method Any (line 1493) | bool
    method AsEnumerable (line 1496) | IEnumerable<TSource>
    method Cast (line 1499) | SqlSet<TResult>
    method Cast (line 1502) | SqlSet
    method Count (line 1505) | int
    method Count (line 1508) | int
    method Count (line 1511) | int
    method First (line 1514) | TSource
    method First (line 1517) | TSource
    method First (line 1520) | TSource
    method FirstOrDefault (line 1523) | TSource?
    method FirstOrDefault (line 1526) | TSource?
    method FirstOrDefault (line 1529) | TSource?
    method GetEnumerator (line 1532) | IEnumerator<TSource>
    method LongCount (line 1535) | long
    method LongCount (line 1538) | long
    method LongCount (line 1541) | long
    method OrderBy (line 1544) | TSqlSet
    method OrderBy (line 1547) | TSqlSet
    method Select (line 1550) | SqlSet<TResult>
    method Select (line 1553) | SqlSet<TResult>
    method Select (line 1556) | SqlSet<TResult>
    method Select (line 1559) | SqlSet<TResult>
    method Select (line 1562) | SqlSet
    method Select (line 1565) | SqlSet
    method Select (line 1568) | SqlSet
    method Select (line 1571) | SqlSet
    method Single (line 1574) | TSource
    method Single (line 1577) | TSource
    method Single (line 1580) | TSource
    method SingleOrDefault (line 1583) | TSource?
    method SingleOrDefault (line 1586) | TSource?
    method SingleOrDefault (line 1589) | TSource?
    method Skip (line 1592) | TSqlSet
    method Take (line 1595) | TSqlSet
    method ToArray (line 1598) | TSource[]
    method ToList (line 1601) | List<TSource>
    method Where (line 1604) | TSqlSet
    method Where (line 1607) | TSqlSet

FILE: src/DbExtensions/SqlTable.Async.cs
  class Database (line 28) | partial class Database {
    method AddAsync (line 34) | public async ValueTask
    method UpdateAsync (line 48) | public async ValueTask
    method UpdateAsync (line 62) | public async ValueTask
    method RemoveAsync (line 76) | public async ValueTask<bool>
  class SqlTable (line 87) | partial class SqlTable {
    method AddAsync (line 91) | public ValueTask
    method AddRangeAsync (line 97) | public ValueTask
    method AddRangeAsync (line 103) | public ValueTask
    method RemoveAsync (line 109) | public ValueTask<bool>
    method RemoveKeyAsync (line 115) | public ValueTask<bool>
    method RemoveRangeAsync (line 121) | public ValueTask
    method RemoveRangeAsync (line 127) | public ValueTask
    method RefreshAsync (line 133) | public ValueTask
    method UpdateAsync (line 139) | public ValueTask
    method UpdateAsync (line 145) | public ValueTask
    method UpdateRangeAsync (line 151) | public ValueTask
    method UpdateRangeAsync (line 157) | public ValueTask
    method AddAsync (line 167) | public async ValueTask
    method InsertDescendantsAsync (line 241) | async ValueTask
    method InsertOneToOneAsync (line 251) | async ValueTask
    method InsertOneToManyAsync (line 280) | async ValueTask
    method AddRangeAsync (line 317) | public async ValueTask
    method AddRangeAsync (line 328) | public ValueTask
    method AddRangeAsync (line 332) | async ValueTask
    method RemoveAsync (line 399) | public async ValueTask<bool>
    method RemoveKeyAsync (line 416) | public async ValueTask<bool>
    method RemoveRangeAsync (line 430) | public async ValueTask
    method RemoveRangeAsync (line 441) | public ValueTask
    method RemoveRangeAsync (line 445) | async ValueTask
    method RefreshAsync (line 536) | public ValueTask
    method RefreshAsync (line 540) | async ValueTask
    method UpdateAsync (line 565) | public ValueTask
    method UpdateAsync (line 572) | public async ValueTask
    method UpdateRangeAsync (line 599) | public async ValueTask
    method UpdateRangeAsync (line 611) | public ValueTask
    method UpdateRangeAsync (line 615) | async ValueTask
    method AddAsync (line 670) | ValueTask
    method AddRangeAsync (line 674) | ValueTask
    method AddRangeAsync (line 678) | ValueTask
    method RemoveAsync (line 682) | ValueTask<bool>
    method RemoveKeyAsync (line 686) | ValueTask<bool>
    method RemoveRangeAsync (line 690) | ValueTask
    method RemoveRangeAsync (line 694) | ValueTask
    method RefreshAsync (line 698) | ValueTask
    method UpdateAsync (line 702) | ValueTask
    method UpdateAsync (line 706) | ValueTask
    method UpdateRangeAsync (line 710) | ValueTask
    method UpdateRangeAsync (line 714) | ValueTask
  class SqlTable (line 162) | partial class SqlTable<TEntity> {
    method AddAsync (line 91) | public ValueTask
    method AddRangeAsync (line 97) | public ValueTask
    method AddRangeAsync (line 103) | public ValueTask
    method RemoveAsync (line 109) | public ValueTask<bool>
    method RemoveKeyAsync (line 115) | public ValueTask<bool>
    method RemoveRangeAsync (line 121) | public ValueTask
    method RemoveRangeAsync (line 127) | public ValueTask
    method RefreshAsync (line 133) | public ValueTask
    method UpdateAsync (line 139) | public ValueTask
    method UpdateAsync (line 145) | public ValueTask
    method UpdateRangeAsync (line 151) | public ValueTask
    method UpdateRangeAsync (line 157) | public ValueTask
    method AddAsync (line 167) | public async ValueTask
    method InsertDescendantsAsync (line 241) | async ValueTask
    method InsertOneToOneAsync (line 251) | async ValueTask
    method InsertOneToManyAsync (line 280) | async ValueTask
    method AddRangeAsync (line 317) | public async ValueTask
    method AddRangeAsync (line 328) | public ValueTask
    method AddRangeAsync (line 332) | async ValueTask
    method RemoveAsync (line 399) | public async ValueTask<bool>
    method RemoveKeyAsync (line 416) | public async ValueTask<bool>
    method RemoveRangeAsync (line 430) | public async ValueTask
    method RemoveRangeAsync (line 441) | public ValueTask
    method RemoveRangeAsync (line 445) | async ValueTask
    method RefreshAsync (line 536) | public ValueTask
    method RefreshAsync (line 540) | async ValueTask
    method UpdateAsync (line 565) | public ValueTask
    method UpdateAsync (line 572) | public async ValueTask
    method UpdateRangeAsync (line 599) | public async ValueTask
    method UpdateRangeAsync (line 611) | public ValueTask
    method UpdateRangeAsync (line 615) | async ValueTask
    method AddAsync (line 670) | ValueTask
    method AddRangeAsync (line 674) | ValueTask
    method AddRangeAsync (line 678) | ValueTask
    method RemoveAsync (line 682) | ValueTask<bool>
    method RemoveKeyAsync (line 686) | ValueTask<bool>
    method RemoveRangeAsync (line 690) | ValueTask
    method RemoveRangeAsync (line 694) | ValueTask
    method RefreshAsync (line 698) | ValueTask
    method UpdateAsync (line 702) | ValueTask
    method UpdateAsync (line 706) | ValueTask
    method UpdateRangeAsync (line 710) | ValueTask
    method UpdateRangeAsync (line 714) | ValueTask
  type ISqlTable (line 719) | partial interface ISqlTable {
    method AddAsync (line 721) | ValueTask
    method AddRangeAsync (line 724) | ValueTask
    method AddRangeAsync (line 727) | ValueTask
    method RemoveAsync (line 730) | ValueTask<bool>
    method RemoveKeyAsync (line 733) | ValueTask<bool>
    method RemoveRangeAsync (line 736) | ValueTask
    method RemoveRangeAsync (line 739) | ValueTask
    method RefreshAsync (line 742) | ValueTask
    method UpdateAsync (line 745) | ValueTask
    method UpdateAsync (line 748) | ValueTask
    method UpdateRangeAsync (line 751) | ValueTask
    method UpdateRangeAsync (line 754) | ValueTask

FILE: src/DbExtensions/SqlTable.SqlSet.cs
  class Database (line 31) | partial class Database {
    method Find (line 38) | public TEntity?
    method FindAsync (line 496) | public async ValueTask<TEntity?>
  class SqlSet (line 43) | partial class SqlSet {
    method EnsureAnnotatedType (line 45) | MetaType
    method EnsureEntityType (line 58) | MetaType
    method Contains (line 81) | public bool
    method ContainsEntityImplParams (line 93) | (ISqlFragment, string)
    method ContainsKey (line 116) | public bool
    method ContainsKeyImplParams (line 128) | (ISqlFragment, string)
    method ContainsImplParams (line 143) | (ISqlFragment, string)
    method Find (line 165) | public object?
    method FindImpl (line 169) | private protected SqlSet
    method Include (line 194) | public SqlSet
    method IncludeMany (line 308) | public SqlSet
    method IncludePathSplit (line 385) | static string[]
    method Contains (line 402) | [EditorBrowsable(EditorBrowsableState.Never)]
    method Contains (line 409) | public bool
    method Find (line 415) | public new TResult?
    method Include (line 422) | public new SqlSet<TResult>
    method Include (line 430) | public SqlSet<TResult>
    method IncludeMany (line 444) | public new SqlSet<TResult>
    method IncludeMany (line 453) | public SqlSet<TResult>
    method IncludeLambdaPath (line 468) | static string
    method ContainsAsync (line 510) | public async ValueTask<bool>
    method ContainsKeyAsync (line 526) | public async ValueTask<bool>
    method FindAsync (line 542) | public async ValueTask<object?>
    method ContainsAsync (line 555) | [EditorBrowsable(EditorBrowsableState.Never)]
    method ContainsAsync (line 562) | public ValueTask<bool>
    method FindAsync (line 568) | public new async ValueTask<TResult?>
  class SqlSet (line 398) | partial class SqlSet<TResult> {
    method EnsureAnnotatedType (line 45) | MetaType
    method EnsureEntityType (line 58) | MetaType
    method Contains (line 81) | public bool
    method ContainsEntityImplParams (line 93) | (ISqlFragment, string)
    method ContainsKey (line 116) | public bool
    method ContainsKeyImplParams (line 128) | (ISqlFragment, string)
    method ContainsImplParams (line 143) | (ISqlFragment, string)
    method Find (line 165) | public object?
    method FindImpl (line 169) | private protected SqlSet
    method Include (line 194) | public SqlSet
    method IncludeMany (line 308) | public SqlSet
    method IncludePathSplit (line 385) | static string[]
    method Contains (line 402) | [EditorBrowsable(EditorBrowsableState.Never)]
    method Contains (line 409) | public bool
    method Find (line 415) | public new TResult?
    method Include (line 422) | public new SqlSet<TResult>
    method Include (line 430) | public SqlSet<TResult>
    method IncludeMany (line 444) | public new SqlSet<TResult>
    method IncludeMany (line 453) | public SqlSet<TResult>
    method IncludeLambdaPath (line 468) | static string
    method ContainsAsync (line 510) | public async ValueTask<bool>
    method ContainsKeyAsync (line 526) | public async ValueTask<bool>
    method FindAsync (line 542) | public async ValueTask<object?>
    method ContainsAsync (line 555) | [EditorBrowsable(EditorBrowsableState.Never)]
    method ContainsAsync (line 562) | public ValueTask<bool>
    method FindAsync (line 568) | public new async ValueTask<TResult?>
  class Database (line 490) | partial class Database {
    method Find (line 38) | public TEntity?
    method FindAsync (line 496) | public async ValueTask<TEntity?>
  class SqlSet (line 505) | partial class SqlSet {
    method EnsureAnnotatedType (line 45) | MetaType
    method EnsureEntityType (line 58) | MetaType
    method Contains (line 81) | public bool
    method ContainsEntityImplParams (line 93) | (ISqlFragment, string)
    method ContainsKey (line 116) | public bool
    method ContainsKeyImplParams (line 128) | (ISqlFragment, string)
    method ContainsImplParams (line 143) | (ISqlFragment, string)
    method Find (line 165) | public object?
    method FindImpl (line 169) | private protected SqlSet
    method Include (line 194) | public SqlSet
    method IncludeMany (line 308) | public SqlSet
    method IncludePathSplit (line 385) | static string[]
    method Contains (line 402) | [EditorBrowsable(EditorBrowsableState.Never)]
    method Contains (line 409) | public bool
    method Find (line 415) | public new TResult?
    method Include (line 422) | public new SqlSet<TResult>
    method Include (line 430) | public SqlSet<TResult>
    method IncludeMany (line 444) | public new SqlSet<TResult>
    method IncludeMany (line 453) | public SqlSet<TResult>
    method IncludeLambdaPath (line 468) | static string
    method ContainsAsync (line 510) | public async ValueTask<bool>
    method ContainsKeyAsync (line 526) | public async ValueTask<bool>
    method FindAsync (line 542) | public async ValueTask<object?>
    method ContainsAsync (line 555) | [EditorBrowsable(EditorBrowsableState.Never)]
    method ContainsAsync (line 562) | public ValueTask<bool>
    method FindAsync (line 568) | public new async ValueTask<TResult?>
  class SqlSet (line 551) | partial class SqlSet<TResult> {
    method EnsureAnnotatedType (line 45) | MetaType
    method EnsureEntityType (line 58) | MetaType
    method Contains (line 81) | public bool
    method ContainsEntityImplParams (line 93) | (ISqlFragment, string)
    method ContainsKey (line 116) | public bool
    method ContainsKeyImplParams (line 128) | (ISqlFragment, string)
    method ContainsImplParams (line 143) | (ISqlFragment, string)
    method Find (line 165) | public object?
    method FindImpl (line 169) | private protected SqlSet
    method Include (line 194) | public SqlSet
    method IncludeMany (line 308) | public SqlSet
    method IncludePathSplit (line 385) | static string[]
    method Contains (line 402) | [EditorBrowsable(EditorBrowsableState.Never)]
    method Contains (line 409) | public bool
    method Find (line 415) | public new TResult?
    method Include (line 422) | public new SqlSet<TResult>
    method Include (line 430) | public SqlSet<TResult>
    method IncludeMany (line 444) | public new SqlSet<TResult>
    method IncludeMany (line 453) | public SqlSet<TResult>
    method IncludeLambdaPath (line 468) | static string
    method ContainsAsync (line 510) | public async ValueTask<bool>
    method ContainsKeyAsync (line 526) | public async ValueTask<bool>
    method FindAsync (line 542) | public async ValueTask<object?>
    method ContainsAsync (line 555) | [EditorBrowsable(EditorBrowsableState.Never)]
    method ContainsAsync (line 562) | public ValueTask<bool>
    method FindAsync (line 568) | public new async ValueTask<TResult?>

FILE: src/DbExtensions/SqlTable.cs
  class Database (line 31) | partial class Database {
    method Initialize2 (line 46) | partial void
    method Initialize3 (line 53) | partial void
    method Table (line 62) | public SqlTable<TEntity>
    method Table (line 82) | public SqlTable
    method Table (line 90) | internal SqlTable
    method Add (line 111) | public void
    method Update (line 124) | public void
    method Update (line 137) | public void
    method Remove (line 150) | public bool
    method BuildPredicateFragment (line 159) | internal string
    method BuildPredicateFragment (line 176) | internal string
    method SelectBody (line 206) | internal string
    method SelectBody (line 216) | internal void
    method FromBody (line 253) | internal string
  class DatabaseConfiguration (line 262) | partial class DatabaseConfiguration {
    method SetModel (line 310) | internal void
    method GetMetaType (line 315) | internal MetaType
  class SqlTable (line 325) | [DebuggerDisplay($"{{{nameof(_metaType)}.{nameof(_metaType.Name)}}}")]
    method SqlTable (line 342) | internal
    method Cast (line 357) | public new SqlTable<TEntity>
    method Cast (line 369) | [EditorBrowsable(EditorBrowsableState.Never)]
    method EnsureEntityType (line 374) | internal static void
    method Add (line 386) | public void
    method AddRange (line 392) | public void
    method AddRange (line 398) | public void
    method Update (line 404) | public void
    method Update (line 410) | public void
    method UpdateRange (line 416) | public void
    method UpdateRange (line 422) | public void
    method Remove (line 428) | public bool
    method RemoveKey (line 434) | public bool
    method RemoveRange (line 440) | public void
    method RemoveRange (line 446) | public void
    method Refresh (line 452) | public void
    method SqlTable (line 477) | internal
    method Add (line 494) | public void
    method InsertDescendants (line 560) | void
    method InsertOneToOne (line 567) | void
    method InsertOneToMany (line 595) | void
    method AddRange (line 633) | public void
    method AddRange (line 643) | public void
    method Update (line 702) | public void
    method Update (line 710) | public void
    method UpdateRange (line 736) | public void
    method UpdateRange (line 749) | public void
    method Remove (line 802) | public bool
    method RemoveKey (line 822) | public bool
    method RemoveRange (line 837) | public void
    method RemoveRange (line 850) | public void
    method Refresh (line 936) | public void
    method Refresh (line 940) | void
    method EnsureEntityType (line 961) | void
    method Add (line 967) | void
    method AddRange (line 971) | void
    method AddRange (line 975) | void
    method Update (line 979) | void
    method Update (line 983) | void
    method UpdateRange (line 987) | void
    method UpdateRange (line 991) | void
    method Remove (line 995) | bool
    method RemoveKey (line 999) | bool
    method RemoveRange (line 1003) | void
    method RemoveRange (line 1007) | void
    method Refresh (line 1011) | void
    method BuildSelectStatement (line 1017) | SqlBuilder
    method BuildInsertStatementForEntity (line 1030) | SqlBuilder
    method BuildInsertStatementForEntity (line 1034) | SqlBuilder
    method BuildUpdateStatementForEntity (line 1097) | SqlBuilder
    method BuildUpdateStatementForEntity (line 1101) | SqlBuilder
    method BuildDeleteStatement (line 1167) | SqlBuilder
    method BuildDeleteStatementForEntity (line 1178) | SqlBuilder
    method BuildDeleteStatementForKey (line 1194) | SqlBuilder
  class SqlTable (line 464) | [DebuggerDisplay($"{{{nameof(_metaType)}.{nameof(_metaType.Name)}}}")]
    method SqlTable (line 342) | internal
    method Cast (line 357) | public new SqlTable<TEntity>
    method Cast (line 369) | [EditorBrowsable(EditorBrowsableState.Never)]
    method EnsureEntityType (line 374) | internal static void
    method Add (line 386) | public void
    method AddRange (line 392) | public void
    method AddRange (line 398) | public void
    method Update (line 404) | public void
    method Update (line 410) | public void
    method UpdateRange (line 416) | public void
    method UpdateRange (line 422) | public void
    method Remove (line 428) | public bool
    method RemoveKey (line 434) | public bool
    method RemoveRange (line 440) | public void
    method RemoveRange (line 446) | public void
    method Refresh (line 452) | public void
    method SqlTable (line 477) | internal
    method Add (line 494) | public void
    method InsertDescendants (line 560) | void
    method InsertOneToOne (line 567) | void
    method InsertOneToMany (line 595) | void
    method AddRange (line 633) | public void
    method AddRange (line 643) | public void
    method Update (line 702) | public void
    method Update (line 710) | public void
    method UpdateRange (line 736) | public void
    method UpdateRange (line 749) | public void
    method Remove (line 802) | public bool
    method RemoveKey (line 822) | public bool
    method RemoveRange (line 837) | public void
    method RemoveRange (line 850) | public void
    method Refresh (line 936) | public void
    method Refresh (line 940) | void
    method EnsureEntityType (line 961) | void
    method Add (line 967) | void
    method AddRange (line 971) | void
    method AddRange (line 975) | void
    method Update (line 979) | void
    method Update (line 983) | void
    method UpdateRange (line 987) | void
    method UpdateRange (line 991) | void
    method Remove (line 995) | bool
    method RemoveKey (line 999) | bool
    method RemoveRange (line 1003) | void
    method RemoveRange (line 1007) | void
    method Refresh (line 1011) | void
    method BuildSelectStatement (line 1017) | SqlBuilder
    method BuildInsertStatementForEntity (line 1030) | SqlBuilder
    method BuildInsertStatementForEntity (line 1034) | SqlBuilder
    method BuildUpdateStatementForEntity (line 1097) | SqlBuilder
    method BuildUpdateStatementForEntity (line 1101) | SqlBuilder
    method BuildDeleteStatement (line 1167) | SqlBuilder
    method BuildDeleteStatementForEntity (line 1178) | SqlBuilder
    method BuildDeleteStatementForKey (line 1194) | SqlBuilder
  type ISqlTable (line 1222) | partial interface ISqlTable {
    method Add (line 1227) | void
    method AddRange (line 1230) | void
    method AddRange (line 1233) | void
    method Remove (line 1236) | bool
    method RemoveKey (line 1239) | bool
    method RemoveRange (line 1242) | void
    method RemoveRange (line 1245) | void
    method Refresh (line 1248) | void
    method Update (line 1251) | void
    method Update (line 1254) | void
    method UpdateRange (line 1257) | void
    method UpdateRange (line 1260) | void
  class PocoNode (line 1264) | partial class PocoNode {
    method GetConvertToType (line 1273) | partial void

FILE: tests/DbExtensions.Tests/Mapping/DynamicMappingBehavior.cs
  class DynamicMappingBehavior (line 10) | [TestFixture]
    method Constructor_Parameters_Not_Allowed (line 13) | [Test]

FILE: tests/DbExtensions.Tests/Mapping/EnumMappingBehavior.cs
  class EnumMappingBehavior (line 7) | [TestFixture]
    method Can_Map_Numeric_Column_To_Enum (line 12) | [Test]
    method Can_Map_Numeric_Column_To_Nullable_Enum (line 22) | [Test]
    method Can_Persist_Enum_To_Numeric_Column (line 32) | [Test]
    method Can_Persist_Nullable_Enum_To_Numeric_Column (line 52) | [Test]
    method Can_Map_Text_Column_To_Enum (line 72) | [Test]
    method Can_Map_Text_Column_To_Nullable_Enum (line 82) | [Test]
    method Can_Persist_Enum_To_Text_Column (line 92) | [Test]
    method Can_Persist_Nullable_Enum_To_Text_Column (line 117) | [Test]
  type CategoryEnum (line 145) | public enum CategoryEnum {
  class Product (line 154) | [Table(Name = "Products")]
  class Product (line 170) | [Table(Name = "Products")]
  class Category (line 186) | [Table(Name = "Categories")]
  class Category (line 199) | [Table(Name = "Categories")]

FILE: tests/DbExtensions.Tests/Mapping/PersistentComplexPropertiesBehavior.cs
  class PersistentComplexPropertiesBehavior (line 7) | [TestFixture]
    method Can_Read_Default_Name (line 12) | [Test]
    method Can_Read_Custom_Name (line 24) | [Test]
    method Can_Insert (line 36) | [Test]
    method Can_Update (line 65) | [Test]
    method Can_Update_Null_Complex_Property (line 88) | [Test]
    method Can_Configure_Default_Separator (line 113) | [Test]
    method Can_Override_Default_Separator (line 131) | [Test]
    method Can_Override_Default_Separator_With_Empty_String (line 149) | [Test]
  class Customer (line 172) | [Table(Name = "Customers")]
  class Contact (line 185) | class Contact {
  class Customer (line 197) | [Table(Name = "Customers")]
  class Contact (line 210) | class Contact {
  class Customer (line 222) | [Table(Name = "Customers")]
  class Contact (line 235) | class Contact {
  class Customer (line 247) | [Table(Name = "Customers")]
  class Contact (line 260) | class Contact {
  class Customer (line 272) | [Table(Name = "Customers")]
  class Contact (line 285) | class Contact {
  class Customer (line 297) | [Table(Name = "Customers")]
  class Contact (line 310) | class Contact {
  class Customer (line 322) | [Table(Name = "Customers")]
  class Contact (line 335) | class Contact {
  class Customer (line 347) | [Table(Name = "Customers")]
  class Contact (line 360) | class Contact {

FILE: tests/DbExtensions.Tests/Mapping/PocoMappingBehavior.cs
  class PocoMappingBehavior (line 10) | [TestFixture]
    method Map_Property (line 13) | [Test]
    method Map_Null_Property (line 29) | [Test]
    method Map_Object (line 45) | [Test]
    method Map_Property_Private_Setter (line 61) | [Test]
    method Ignore_Unmapped_Property (line 77) | [Test]
    method Map_Complex_Property (line 92) | [Test]
    method Map_Null_Complex_Property (line 109) | [Test]
    method Map_Complex_Property_To_Null_When_All_Subproperties_Are_Null (line 125) | [Test]
    method Load_Complex_Property (line 142) | [Test]
    method Map_Constructor (line 158) | [Test]
    method Fail_When_Duplicate_Arguments (line 176) | [Test]
    method Fail_When_Multiple_Constructors_With_Same_Number_Of_Parameters (line 192) | [Test]
    method Map_Constructor_Complex_Property (line 208) | [Test]
    method Map_Constructor_Nullable_Complex_Property (line 225) | [Test]
    method Map_Constructor_Complex_Property_To_Null_When_All_Arguments_And_Subproperties_Are_Null (line 243) | [Test]
    method Map_Constructor_Complex_Argument_To_Null_When_All_Arguments_And_Subproperties_Are_Null (line 260) | [Test]
    method Load_Constructor_Complex_Property (line 277) | [Test]
    method Load_Constructor_Complex_Argument (line 295) | [Test]
    method Map_Null_Constructor_Argument (line 312) | [Test]
    method Map_Constructor_Nested (line 329) | [Test]
  class Map_Property (line 351) | class Map_Property {
  class Map_Null_Property (line 355) | class Map_Null_Property {
  class Map_Object (line 359) | class Map_Object {
  class Map_Property_Private_Setter (line 363) | class Map_Property_Private_Setter {
  class Ignore_Unmapped_Property (line 367) | class Ignore_Unmapped_Property {
  class Map_Complex_Property (line 371) | class Map_Complex_Property {
  class Map_Null_Complex_Property (line 377) | class Map_Null_Complex_Property {
  class Map_Complex_Property_To_Null_When_All_Subproperties_Are_Null (line 383) | class Map_Complex_Property_To_Null_When_All_Subproperties_Are_Null {
  class Load_Complex_Property (line 390) | class Load_Complex_Property {
    method Load_Complex_Property (line 394) | public Load_Complex_Property() {
    class FooClass (line 400) | public class FooClass {
  class Map_Constructor (line 406) | class Map_Constructor {
    method Map_Constructor (line 412) | public Map_Constructor(int foo, string bar) {
  class Map_Constructor_Complex_Property (line 418) | class Map_Constructor_Complex_Property {
  class Map_Constructor_Nullable_Complex_Property (line 422) | class Map_Constructor_Nullable_Complex_Property {
    type Foo (line 427) | public struct Foo {
      method Foo (line 431) | public Foo(int a) {
  class Map_Constructor_Complex_Property_To_Null_When_All_Arguments_And_Subproperties_Are_Null (line 437) | class Map_Constructor_Complex_Property_To_Null_When_All_Arguments_And_Su...
    class FooClass (line 441) | public class FooClass {
      method FooClass (line 445) | public FooClass(int? id) { }
  class Map_Constructor_Complex_Argument_To_Null_When_All_Arguments_And_Subproperties_Are_Null (line 449) | class Map_Constructor_Complex_Argument_To_Null_When_All_Arguments_And_Su...
    method Map_Constructor_Complex_Argument_To_Null_When_All_Arguments_And_Subproperties_Are_Null (line 453) | public Map_Constructor_Complex_Argument_To_Null_When_All_Arguments_And...
    class FooClass (line 457) | public class FooClass {
      method FooClass (line 461) | public FooClass(int? id) { }
  class Load_Constructor_Complex_Property (line 465) | class Load_Constructor_Complex_Property {
    method Load_Constructor_Complex_Property (line 470) | public Load_Constructor_Complex_Property(int a) {
    class FooClass (line 474) | public class FooClass {
      method FooClass (line 479) | public FooClass() {
      class BarClass (line 485) | public class BarClass {
  class Load_Constructor_Complex_Argument (line 492) | class Load_Constructor_Complex_Argument {
    method Load_Constructor_Complex_Argument (line 497) | public Load_Constructor_Complex_Argument(FooClass foo) {
    class FooClass (line 501) | public class FooClass {
      method FooClass (line 506) | public FooClass() {
      class BarClass (line 512) | public class BarClass {
  class Map_Null_Constructor_Argument (line 519) | class Map_Null_Constructor_Argument {
    method Map_Null_Constructor_Argument (line 524) | public Map_Null_Constructor_Argument(int id) {
    method Map_Null_Constructor_Argument (line 528) | public Map_Null_Constructor_Argument(int id, Uri url)
  class Map_Constructor_Nested (line 535) | class Map_Constructor_Nested {
    method Map_Constructor_Nested (line 539) | public Map_Constructor_Nested(NestedClass nested) {
    class NestedClass (line 543) | public class NestedClass {
      method NestedClass (line 549) | public NestedClass(int foo, string bar) {

FILE: tests/DbExtensions.Tests/Mapping/PocoMappingConstructorBehavior.cs
  class PocoMappingConstructorBehavior (line 10) | [TestFixture]
    method Map_Constructor_Named_Arguments (line 13) | [Test]
    method Map_Constructor_Named_Arguments_Matching_Properties (line 31) | [Test]
    method Map_Constructor_Named_Arguments_Missing_Arg (line 51) | [Test]
    method Map_Constructor_Named_Arguments_Complex_Property (line 67) | [Test]
    method Map_Constructor_Named_Arguments_Complex_Argument (line 85) | [Test]
    method Map_Constructor_Named_Arguments_Nested (line 103) | [Test]
  class _Basic (line 124) | class _Basic {
    method _Basic (line 129) | public _Basic(int id, string name) {
  class _ParamsMatchProperties (line 135) | class _ParamsMatchProperties {
    method _ParamsMatchProperties (line 143) | public _ParamsMatchProperties(int id, string name) {
  class _MissingArg (line 149) | class _MissingArg {
    method _MissingArg (line 151) | public _MissingArg(int id, string name, DateTime dob) { }
  class _ComplexProperty (line 154) | class _ComplexProperty {
    class _ComplexPropertyType (line 158) | public class _ComplexPropertyType {
      method _ComplexPropertyType (line 163) | public _ComplexPropertyType(int id, string name) {
  class _ComplexArgument (line 170) | class _ComplexArgument {
    method _ComplexArgument (line 174) | public _ComplexArgument(_ComplexArgumentType value) {
    class _ComplexArgumentType (line 178) | public class _ComplexArgumentType {
      method _ComplexArgumentType (line 183) | public _ComplexArgumentType(int id, string name) {
  class _Nested (line 190) | class _Nested {
    method _Nested (line 194) | public _Nested(_NestedType value) {
    class _NestedType (line 198) | public class _NestedType {
      method _NestedType (line 203) | public _NestedType(int id, string name) {

FILE: tests/DbExtensions.Tests/Mapping/PocoMappingEnumBehavior.cs
  class PocoMappingEnumBehavior (line 7) | [TestFixture]
    method Can_Map_Numeric_Column_To_Enum (line 12) | [Test]
    method Can_Map_Numeric_Column_To_Nullable_Enum (line 22) | [Test]
    method Can_Map_Text_Column_To_Enum (line 32) | [Test]
    method Can_Map_Text_Column_To_Nullable_Enum (line 42) | [Test]
  type CategoryEnum (line 55) | public enum CategoryEnum {
  class Product (line 64) | public class Product {
  class Product (line 76) | public class Product {
  class Category (line 88) | public class Category {
  class Category (line 98) | public class Category {

FILE: tests/DbExtensions.Tests/Metadata/AssociationReflection.cs
  class AssociationReflection (line 9) | [TestFixture]
    method One_To_Many (line 14) | [Test]
    method Many_To_One (line 35) | [Test]
  class Employee (line 59) | [Table]
  class EmployeeTerritory (line 78) | [Table]
  class Territory (line 94) | [Table]
  class Order (line 104) | [Table]
  class OrderDetail (line 120) | [Table]

FILE: tests/DbExtensions.Tests/Querying/SqlBuilderBehavior/BasicTests.cs
  class BasicTests (line 6) | [TestFixture]
    method Create_Interpolated (line 9) | [Test]
    method Multiple_Parameters (line 27) | [Test]
    method Expand_List_Parameter (line 37) | [Test]
    method Adjust_Other_Placeholders_When_Using_List_Parameter (line 48) | [Test]
    method Allow_Empty_List (line 59) | [Test]
    method Use_Parameter_On_Limit_Clause (line 70) | [Test]
    method Use_Parameter_On_Offset_Clause (line 80) | [Test]
    method Treat_SqlBuilder_As_SubQuery (line 90) | [Test]
    method Treat_SqlSet_As_SubQuery (line 103) | [Test]

FILE: tests/DbExtensions.Tests/Querying/SqlBuilderBehavior/ConditionalAppendTests.cs
  class ConditionalAppendTests (line 6) | [TestFixture]
    method AppendIf (line 11) | [Test]
    method AppendIf_Different_Clause (line 27) | [Test]
    method AppendElseIf (line 41) | [Test]
    method AppendElseIf_No_If (line 60) | [Test]
    method AppendElseIf_After_Else (line 70) | [Test]
    method AppendElseIf_Different_Clause (line 82) | [Test]
    method AppendElseIf_Different_Next_Clause (line 94) | [Test]
    method AppendElse (line 109) | [Test]
    method AppendElse_Duplicate (line 135) | [Test]
    method AppendElse_No_If (line 147) | [Test]
    method AppendElse_Not_Nested (line 157) | [Test]
    method AppendElse_Different_Clause (line 170) | [Test]
    method AppendElse_Different_Next_Clause (line 182) | [Test]

FILE: tests/DbExtensions.Tests/Querying/SqlBuilderBehavior/ConditionalClauseTests.cs
  class ConditionalClauseTests (line 6) | [TestFixture]
    method If_Continuation (line 9) | [Test]
    method Next_Clause_Continuation (line 25) | [Test]
    method ElseIf_Continuation (line 39) | [Test]
    method ElseIf_Continuation_No_If (line 58) | [Test]
    method ElseIf_Continuation_After_Else (line 68) | [Test]
    method ElseIf_Continuation_Different_Clause (line 80) | [Test]
    method ElseIf_Continuation_Different_Next_Clause (line 92) | [Test]
    method Else_Continuation (line 107) | [Test]
    method Else_Continuation_Duplicate (line 133) | [Test]
    method Else_Continuation_No_If (line 145) | [Test]
    method Else_Continuation_Not_Nested (line 155) | [Test]
    method Else_Continuation_Different_Clause (line 168) | [Test]
    method Else_Continuation_Different_Next_Clause (line 180) | [Test]

FILE: tests/DbExtensions.Tests/Querying/SqlBuilderBehavior/ExtensibilityTests.cs
  class ExtensibilityTests (line 7) | [TestFixture]
    method Extension_Clause (line 10) | [Test]
  class SqlBuilderExtensions (line 34) | public static class SqlBuilderExtensions {
    type FetchClause (line 36) | public sealed record class FetchClause() : SqlClause("FETCH", null);
    method FETCH (line 38) | public static SqlBuilder FETCH(this SqlBuilder sql, [InterpolatedStrin...
    method FETCH (line 42) | public static SqlBuilder FETCH(this SqlBuilder sql, string text) {

FILE: tests/DbExtensions.Tests/Querying/SqlBuilderBehavior/ValuesClauseTests.cs
  class ValuesClauseTests (line 5) | [TestFixture]
    method Values_List (line 8) | [Test]
    method Values_Continuation (line 19) | [Test]

FILE: tests/DbExtensions.Tests/Querying/SqlSetAnnotatedBehavior/BasicTests.cs
  class BasicTests (line 7) | [TestFixture]
    method Contains (line 12) | [Test]
    method ContainsKey (line 23) | [Test]
    method Find (line 32) | [Test]
  class Product (line 46) | [Table(Name = "Products")]

FILE: tests/DbExtensions.Tests/Querying/SqlSetAnnotatedBehavior/IncludeTests.cs
  class IncludeTests (line 10) | [TestFixture]
    method Can_Include_One (line 15) | [Test]
    method Can_Include_One_Nested (line 29) | [Test]
    method Can_Include_One_Nested_Key_Name_Member_Differs (line 41) | [Test]
    method Can_Include_Many (line 53) | [Test]
    method Can_Include_Many_Multiple (line 66) | [Test]
    method Can_Include_Many_In_One (line 94) | [Test]
    method Can_Include_Many_In_One_Multiple (line 108) | [Test]
    method Can_Include_One_In_Many (line 126) | [Test]
    method Can_Include_Many_In_Many (line 140) | [Test]
  class Product (line 166) | [Table(Name = "Products")]
  class Category (line 185) | [Table(Name = "Categories")]
  class Supplier (line 198) | [Table(Name = "Suppliers")]
  class Employee (line 208) | [Table(Name = "Employees")]
  class EmployeeTerritory (line 227) | [Table(Name = "EmployeeTerritories")]
  class Territory (line 243) | [Table(Name = "Territories")]
  class Region (line 259) | [Table]
  class Order (line 269) | [Table(Name = "Orders")]
  class OrderDetail (line 285) | [Table(Name = "Order Details")]
  class EmployeeTerritory (line 304) | [Table(Name = "EmployeeTerritories")]
  class Territory (line 317) | [Table(Name = "Territories")]
  class Region (line 333) | [Table]

FILE: tests/DbExtensions.Tests/Querying/SqlSetAsyncBehavior.cs
  class SqlSetAsyncBehavior (line 9) | [TestFixture]
    method AsAsyncEnumerable_Reference_Type (line 12) | [Test]
    method AsAsyncEnumerable_Value_Type (line 30) | [Test]
    method Async_Enumerate (line 48) | [Test]
    method Async_ForEach_Enumerate (line 69) | [Test]

FILE: tests/DbExtensions.Tests/Querying/SqlSetBehavior.cs
  class SqlSetBehavior (line 8) | [TestFixture]
    method AsEnumerable_Reference_Type (line 13) | [Test]
    method AsEnumerable_Value_Type (line 31) | [Test]
    method Enumerate (line 49) | [Test]
    method ForEach_Enumerate (line 70) | [Test]
    method Dont_Use_Subqueries_When_Methods_Are_Called_In_Order (line 91) | [Test]
    method Apply_Where_After_Where_Call (line 109) | [Test]
    method Apply_Where_After_OrderBy_Call (line 127) | [Test]
    method Apply_Where_After_Skip_Call (line 145) | [Test]
    method Apply_Where_After_Take_Call (line 163) | [Test]
    method Apply_OrderBy_After_OrderBy_Call (line 181) | [Test]
    method Apply_OrderBy_After_Skip_Call (line 199) | [Test]
    method Apply_OrderBy_After_Take_Call (line 217) | [Test]
    method Apply_Skip_After_Skip_Call (line 235) | [Test]
    method Apply_Skip_After_Take_Call (line 253) | [Test]
    method Apply_Take_After_Take_Call (line 271) | [Test]
    method Dont_Use_Subquery_For_Cast (line 289) | [Test]
    method Dont_Use_Subquery_For_Cast_Generic (line 304) | [Test]
    method Dont_Require_Type_For_Select (line 319) | [Test]
    method Remember_Mapper (line 335) | [Test]

FILE: tests/DbExtensions.Tests/Querying/SqlSetBehaviorForSqlServer.cs
  class SqlSetBehaviorForSqlServer (line 7) | [TestFixture]
    method Use_Parameter_On_Skip (line 12) | [Test]
    method Use_Parameter_On_Take (line 22) | [Test]
    method Use_Parameter_On_Skip_And_Take (line 32) | [Test]

FILE: tests/DbExtensions.Tests/Querying/SqlTableBehavior.cs
  class SqlTableBehavior (line 8) | [TestFixture]
    method Dont_Use_Subqueries_When_Methods_Are_Called_In_Order (line 11) | [Test]
    method Can_Use_Multipart_Identifier (line 31) | [Test]
    method Can_Update_Assigned_Key (line 45) | [Test]
    method Can_Refresh (line 71) | [Test]
    method InsertOneToMany_Descendants (line 103) | [Test]
  class Product (line 146) | [Table]
  class Product (line 156) | [Table(Name = "[dbo].[Products]")]
  class Customer (line 169) | [Table(Name = "Customers")]
  class Product (line 182) | [Table(Name = "Products")]
  class Region (line 198) | [Table(Name = "Region")]
  class Territory (line 211) | [Table(Name = "Territories")]
  class EmployeeTerritory (line 227) | [Table(Name = "EmployeeTerritories")]

FILE: tests/DbExtensions.Tests/TestUtil.cs
  class TestUtil (line 17) | static class TestUtil {
    method MockDatabase (line 19) | public static Database
    method MockDatabaseImpl (line 23) | static Mock<Database>
    method MockQuery (line 35) | public static Database
    method SetupReader (line 50) | public static void
    method RealDatabase (line 74) | public static Database
    method SqlEquals (line 93) | public static bool
  class TestDataReader (line 98) | class TestDataReader : DbDataReader {
    method TestDataReader (line 130) | public
    method GetEnumerator (line 135) | public override IEnumerator
    method GetBoolean (line 139) | public override bool
    method GetByte (line 143) | public override byte
    method GetBytes (line 147) | public override long
    method GetChar (line 151) | public override char
    method GetChars (line 155) | public override long
    method GetDataTypeName (line 159) | public override string
    method GetDateTime (line 163) | public override DateTime
    method GetDecimal (line 167) | public override decimal
    method GetDouble (line 171) | public override double
    method GetFieldType (line 175) | public override Type
    method GetFloat (line 179) | public override float
    method GetGuid (line 183) | public override Guid
    method GetInt16 (line 187) | public override short
    method GetInt32 (line 191) | public override int
    method GetInt64 (line 195) | public override long
    method GetName (line 199) | public override string
    method GetOrdinal (line 203) | public override int
    method GetString (line 211) | public override string
    method GetValue (line 215) | public override object
    method GetValues (line 219) | public override int
    method IsDBNull (line 223) | public override bool
    method NextResult (line 227) | public override bool
    method Read (line 231) | public override bool
Condensed preview — 503 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (1,465K chars).
[
  {
    "path": ".gitattributes",
    "chars": 483,
    "preview": "# Auto detect text files and perform LF normalization\n* text=auto\n\n# Custom for Visual Studio\n*.cs     diff=csharp\n*.sln"
  },
  {
    "path": ".github/FUNDING.yml",
    "chars": 64,
    "preview": "# These are supported funding model platforms\n\ngithub: maxtoroq\n"
  },
  {
    "path": ".gitignore",
    "chars": 91,
    "preview": "/.vs/\n/.nuget/\n/packages/\n/docs/api/_toc.xml\n\n[Bb]in\n[Oo]bj\n[Tt]est[Rr]esults\n*.suo\n*.user\n"
  },
  {
    "path": ".gitmodules",
    "chars": 115,
    "preview": "[submodule \"build/sandcastle-md\"]\n\tpath = build/sandcastle-md\n\turl = https://github.com/maxtoroq/sandcastle-md.git\n"
  },
  {
    "path": "CHANGES.md",
    "chars": 89,
    "preview": "This page has moved [here](https://maxtoroq.github.io/DbExtensions/docs/7/changes.html)."
  },
  {
    "path": "DbExtensions.sln",
    "chars": 5129,
    "preview": "\nMicrosoft Visual Studio Solution File, Format Version 12.00\n# Visual Studio Version 17\nVisualStudioVersion = 17.11.352"
  },
  {
    "path": "LICENSE.txt",
    "chars": 11357,
    "preview": "\n                                 Apache License\n                           Version 2.0, January 2004\n                  "
  },
  {
    "path": "NOTICE.xml",
    "chars": 2105,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!--\n=========================================================================\n="
  },
  {
    "path": "README.md",
    "chars": 681,
    "preview": "[DbExtensions][1] — The SQL framework for .NET\n==============================================\nDbExtensions is a data-ac"
  },
  {
    "path": "appveyor.yml",
    "chars": 118,
    "preview": "image: Visual Studio 2022\n\nbefore_build:\n  - cmd: MSBuild -t:restore\n\nversion: '{build}'\n\nbuild:\n  verbosity: minimal\n"
  },
  {
    "path": "build/.gitignore",
    "chars": 57,
    "preview": "/api-docs/\n/EWSoftware.SHFB/\n/EWSoftware.SHFB.*/\n/nupkg/\n"
  },
  {
    "path": "build/DbExtensions.shfbproj",
    "chars": 4581,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/ms"
  },
  {
    "path": "build/build-docs.ps1",
    "chars": 1154,
    "preview": "param([string]$ProjectName = \"DbExtensions\", [switch]$NoBuildProj, [switch]$XmlOnly)\n\n$ErrorActionPreference = \"Stop\"\nPu"
  },
  {
    "path": "build/ensure-nuget.ps1",
    "chars": 512,
    "preview": "$ErrorActionPreference = \"Stop\"\nPush-Location (Split-Path $script:MyInvocation.MyCommand.Path)\n\n$nuget = \"..\\.nuget\\nug"
  },
  {
    "path": "build/release.ps1",
    "chars": 3097,
    "preview": "param(\n   [Parameter(Mandatory=$true)][Version]$AssemblyVersion,\n   [Parameter(Mandatory=$true)][Version]$PackageVersion"
  },
  {
    "path": "docs/README.md",
    "chars": 81,
    "preview": "Documentation has moved [here](https://maxtoroq.github.io/DbExtensions/docs/7/)."
  },
  {
    "path": "docs/SqlBuilder.md",
    "chars": 92,
    "preview": "This page has moved [here](https://maxtoroq.github.io/DbExtensions/docs/7/SqlBuilder.html)."
  },
  {
    "path": "docs/SqlSet.md",
    "chars": 88,
    "preview": "This page has moved [here](https://maxtoroq.github.io/DbExtensions/docs/7/SqlSet.html)."
  },
  {
    "path": "docs/api/DbExtensions/AssociationAttribute/Name.md",
    "chars": 465,
    "preview": "AssociationAttribute.Name Property\n==================================\nGets or sets the name of a constraint.\n  \n**Namesp"
  },
  {
    "path": "docs/api/DbExtensions/AssociationAttribute/OtherKey.md",
    "chars": 550,
    "preview": "AssociationAttribute.OtherKey Property\n======================================\nGets or sets one or more members of the ta"
  },
  {
    "path": "docs/api/DbExtensions/AssociationAttribute/README.md",
    "chars": 1772,
    "preview": "AssociationAttribute Class\n==========================\nDesignates a property to represent a database association, such as"
  },
  {
    "path": "docs/api/DbExtensions/AssociationAttribute/ThisKey.md",
    "chars": 538,
    "preview": "AssociationAttribute.ThisKey Property\n=====================================\nGets or sets members of this entity class to"
  },
  {
    "path": "docs/api/DbExtensions/AssociationAttribute/_ctor.md",
    "chars": 394,
    "preview": "AssociationAttribute Constructor\n================================\nInitializes a new instance of the [AssociationAttribut"
  },
  {
    "path": "docs/api/DbExtensions/AutoSync/README.md",
    "chars": 923,
    "preview": "AutoSync Enumeration\n====================\nUsed to specify for during INSERT and UPDATE operations when a data member sho"
  },
  {
    "path": "docs/api/DbExtensions/ChangeConflictException/README.md",
    "chars": 1368,
    "preview": "ChangeConflictException Class\n=============================\nAn exception that is thrown when a concurrency violation is "
  },
  {
    "path": "docs/api/DbExtensions/ChangeConflictException/_ctor.md",
    "chars": 601,
    "preview": "ChangeConflictException Constructor\n===================================\nInitializes a new instance of the [ChangeConflic"
  },
  {
    "path": "docs/api/DbExtensions/ColumnAttribute/AutoSync.md",
    "chars": 439,
    "preview": "ColumnAttribute.AutoSync Property\n=================================\nGets or sets the [AutoSync][1] enumeration.\n  \n**Nam"
  },
  {
    "path": "docs/api/DbExtensions/ColumnAttribute/ConvertTo.md",
    "chars": 500,
    "preview": "ColumnAttribute.ConvertTo Property\n==================================\nGets or sets the type to convert this member to be"
  },
  {
    "path": "docs/api/DbExtensions/ColumnAttribute/IsDbGenerated.md",
    "chars": 517,
    "preview": "ColumnAttribute.IsDbGenerated Property\n======================================\nGets or sets whether a column contains val"
  },
  {
    "path": "docs/api/DbExtensions/ColumnAttribute/IsPrimaryKey.md",
    "chars": 546,
    "preview": "ColumnAttribute.IsPrimaryKey Property\n=====================================\nGets or sets whether this class member repre"
  },
  {
    "path": "docs/api/DbExtensions/ColumnAttribute/IsVersion.md",
    "chars": 519,
    "preview": "ColumnAttribute.IsVersion Property\n==================================\nGets or sets whether the column type of the member"
  },
  {
    "path": "docs/api/DbExtensions/ColumnAttribute/Name.md",
    "chars": 446,
    "preview": "ColumnAttribute.Name Property\n=============================\nGets or sets the name of a column.\n  \n**Namespace:** [DbExte"
  },
  {
    "path": "docs/api/DbExtensions/ColumnAttribute/README.md",
    "chars": 2207,
    "preview": "ColumnAttribute Class\n=====================\nAssociates a property with a column in a database table.\n\n\nInheritance Hiera"
  },
  {
    "path": "docs/api/DbExtensions/ColumnAttribute/_ctor.md",
    "chars": 369,
    "preview": "ColumnAttribute Constructor\n===========================\nInitializes a new instance of the [ColumnAttribute][1] class\n  \n"
  },
  {
    "path": "docs/api/DbExtensions/ComplexPropertyAttribute/Name.md",
    "chars": 527,
    "preview": "ComplexPropertyAttribute.Name Property\n======================================\nThe base name for the columns on the compl"
  },
  {
    "path": "docs/api/DbExtensions/ComplexPropertyAttribute/README.md",
    "chars": 2503,
    "preview": "ComplexPropertyAttribute Class\n==============================\nDesignates a property as a complex property that groups co"
  },
  {
    "path": "docs/api/DbExtensions/ComplexPropertyAttribute/Separator.md",
    "chars": 804,
    "preview": "ComplexPropertyAttribute.Separator Property\n===========================================\nThe separator to use between the"
  },
  {
    "path": "docs/api/DbExtensions/ComplexPropertyAttribute/_ctor.md",
    "chars": 414,
    "preview": "ComplexPropertyAttribute Constructor\n====================================\nInitializes a new instance of the [ComplexProp"
  },
  {
    "path": "docs/api/DbExtensions/Database/Add.md",
    "chars": 891,
    "preview": "Database.Add Method\n===================\nRecursively executes INSERT commands for the specified *entity* and all its one-"
  },
  {
    "path": "docs/api/DbExtensions/Database/AddAsync.md",
    "chars": 1445,
    "preview": "Database.AddAsync Method\n========================\nRecursively executes INSERT commands for the specified *entity* and al"
  },
  {
    "path": "docs/api/DbExtensions/Database/AsyncMap.md",
    "chars": 2064,
    "preview": "Database.AsyncMap(SqlBuilder) Method\n====================================\nMaps the results of the *query* to dynamic obj"
  },
  {
    "path": "docs/api/DbExtensions/Database/AsyncMap_1.md",
    "chars": 2302,
    "preview": "Database.AsyncMap(SqlBuilder, Type) Method\n==========================================\nMaps the results of the *query* to"
  },
  {
    "path": "docs/api/DbExtensions/Database/AsyncMap__1.md",
    "chars": 2120,
    "preview": "Database.AsyncMap&lt;TResult>(SqlBuilder) Method\n================================================\nMaps the results of th"
  },
  {
    "path": "docs/api/DbExtensions/Database/AsyncMap__1_1.md",
    "chars": 2491,
    "preview": "Database.AsyncMap&lt;TResult>(SqlBuilder, Func&lt;DbDataReader, TResult>) Method\n======================================="
  },
  {
    "path": "docs/api/DbExtensions/Database/Configuration.md",
    "chars": 483,
    "preview": "Database.Configuration Property\n===============================\nProvides access to configuration options for this instan"
  },
  {
    "path": "docs/api/DbExtensions/Database/Connection.md",
    "chars": 484,
    "preview": "Database.Connection Property\n============================\nGets the connection to associate with new commands.\n  \n**Names"
  },
  {
    "path": "docs/api/DbExtensions/Database/CreateCommand.md",
    "chars": 1146,
    "preview": "Database.CreateCommand Method\n=============================\nCreates and returns a [DbCommand][1] object from the specifi"
  },
  {
    "path": "docs/api/DbExtensions/Database/Dispose.md",
    "chars": 960,
    "preview": "Database.Dispose Method\n=======================\nReleases all resources used by the current instance of the [Database][1]"
  },
  {
    "path": "docs/api/DbExtensions/Database/Dispose_1.md",
    "chars": 1063,
    "preview": "Database.Dispose(Boolean) Method\n================================\nReleases the resources used by this [Database][1] inst"
  },
  {
    "path": "docs/api/DbExtensions/Database/EnsureConnectionOpen.md",
    "chars": 883,
    "preview": "Database.EnsureConnectionOpen Method\n====================================\nOpens [Connection][1] (if it's not open) and r"
  },
  {
    "path": "docs/api/DbExtensions/Database/EnsureConnectionOpenAsync.md",
    "chars": 1431,
    "preview": "Database.EnsureConnectionOpenAsync Method\n=========================================\nOpens [Connection][1] (if it's not o"
  },
  {
    "path": "docs/api/DbExtensions/Database/EnsureInTransaction.md",
    "chars": 2197,
    "preview": "Database.EnsureInTransaction Method\n===================================\nReturns a virtual transaction that you can use t"
  },
  {
    "path": "docs/api/DbExtensions/Database/EnsureInTransactionAsync.md",
    "chars": 3212,
    "preview": "Database.EnsureInTransactionAsync(IsolationLevel, CancellationToken) Method\n============================================"
  },
  {
    "path": "docs/api/DbExtensions/Database/EnsureInTransactionAsync_1.md",
    "chars": 2913,
    "preview": "Database.EnsureInTransactionAsync(CancellationToken) Method\n===========================================================\n"
  },
  {
    "path": "docs/api/DbExtensions/Database/EnsureInTransaction_1.md",
    "chars": 2509,
    "preview": "Database.EnsureInTransaction(IsolationLevel) Method\n===================================================\nReturns a virtua"
  },
  {
    "path": "docs/api/DbExtensions/Database/Execute.md",
    "chars": 1395,
    "preview": "Database.Execute Method\n=======================\nExecutes the *nonQuery* command. Optionally uses a transaction and valid"
  },
  {
    "path": "docs/api/DbExtensions/Database/ExecuteAsync.md",
    "chars": 1884,
    "preview": "Database.ExecuteAsync Method\n============================\nExecutes the *nonQuery* command. Optionally uses a transaction"
  },
  {
    "path": "docs/api/DbExtensions/Database/FindAsync__1.md",
    "chars": 1324,
    "preview": "Database.FindAsync&lt;TEntity> Method\n=====================================\nGets the entity whose primary key matches th"
  },
  {
    "path": "docs/api/DbExtensions/Database/Find__1.md",
    "chars": 869,
    "preview": "Database.Find&lt;TEntity> Method\n================================\nGets the entity whose primary key matches the *id* par"
  },
  {
    "path": "docs/api/DbExtensions/Database/From.md",
    "chars": 1310,
    "preview": "Database.From(String) Method\n============================\nCreates and returns a new [SqlSet][1] using the provided table"
  },
  {
    "path": "docs/api/DbExtensions/Database/FromQuery.md",
    "chars": 1802,
    "preview": "Database.FromQuery(SqlBuilder) Method\n=====================================\nCreates and returns a new [SqlSet][1] using "
  },
  {
    "path": "docs/api/DbExtensions/Database/FromQuery_1.md",
    "chars": 1961,
    "preview": "Database.FromQuery(SqlBuilder, Type) Method\n===========================================\nCreates and returns a new [SqlSe"
  },
  {
    "path": "docs/api/DbExtensions/Database/FromQuery__1.md",
    "chars": 1964,
    "preview": "Database.FromQuery&lt;TResult>(SqlBuilder) Method\n=================================================\nCreates and returns "
  },
  {
    "path": "docs/api/DbExtensions/Database/FromQuery__1_1.md",
    "chars": 2348,
    "preview": "Database.FromQuery&lt;TResult>(SqlBuilder, Func&lt;DbDataReader, TResult>) Method\n======================================"
  },
  {
    "path": "docs/api/DbExtensions/Database/From_1.md",
    "chars": 1469,
    "preview": "Database.From(String, Type) Method\n==================================\nCreates and returns a new [SqlSet][1] using the pr"
  },
  {
    "path": "docs/api/DbExtensions/Database/From__1.md",
    "chars": 1467,
    "preview": "Database.From&lt;TResult>(String) Method\n========================================\nCreates and returns a new [SqlSet&lt;T"
  },
  {
    "path": "docs/api/DbExtensions/Database/LastInsertId.md",
    "chars": 651,
    "preview": "Database.LastInsertId Method\n============================\nGets the identity value of the last inserted record.\n  \n**Name"
  },
  {
    "path": "docs/api/DbExtensions/Database/LastInsertIdAsync.md",
    "chars": 1156,
    "preview": "Database.LastInsertIdAsync Method\n=================================\nGets the identity value of the last inserted record."
  },
  {
    "path": "docs/api/DbExtensions/Database/Map.md",
    "chars": 1989,
    "preview": "Database.Map(SqlBuilder) Method\n===============================\nMaps the results of the *query* to dynamic objects. The "
  },
  {
    "path": "docs/api/DbExtensions/Database/Map_1.md",
    "chars": 2227,
    "preview": "Database.Map(SqlBuilder, Type) Method\n=====================================\nMaps the results of the *query* to objects o"
  },
  {
    "path": "docs/api/DbExtensions/Database/Map__1.md",
    "chars": 2045,
    "preview": "Database.Map&lt;TResult>(SqlBuilder) Method\n===========================================\nMaps the results of the *query* "
  },
  {
    "path": "docs/api/DbExtensions/Database/Map__1_1.md",
    "chars": 2416,
    "preview": "Database.Map&lt;TResult>(SqlBuilder, Func&lt;DbDataReader, TResult>) Method\n============================================"
  },
  {
    "path": "docs/api/DbExtensions/Database/QuoteIdentifier.md",
    "chars": 711,
    "preview": "Database.QuoteIdentifier Method\n===============================\nGiven an unquoted identifier in the correct catalog case"
  },
  {
    "path": "docs/api/DbExtensions/Database/README.md",
    "chars": 11965,
    "preview": "Database Class\n==============\nProvides simple data access using [SqlSet][1], [SqlBuilder][2] and [SqlTable&lt;TEntity>]["
  },
  {
    "path": "docs/api/DbExtensions/Database/Remove.md",
    "chars": 805,
    "preview": "Database.Remove Method\n======================\nExecutes a DELETE command for the specified *entity*.\n  \n**Namespace:** [D"
  },
  {
    "path": "docs/api/DbExtensions/Database/RemoveAsync.md",
    "chars": 1353,
    "preview": "Database.RemoveAsync Method\n===========================\nExecutes a DELETE command for the specified *entity*.\n  \n**Names"
  },
  {
    "path": "docs/api/DbExtensions/Database/Table.md",
    "chars": 1108,
    "preview": "Database.Table(Type) Method\n===========================\nReturns the [SqlTable][1] instance for the specified *entityType"
  },
  {
    "path": "docs/api/DbExtensions/Database/Table__1.md",
    "chars": 1101,
    "preview": "Database.Table&lt;TEntity> Method\n=================================\nReturns the [SqlTable&lt;TEntity>][1] instance for t"
  },
  {
    "path": "docs/api/DbExtensions/Database/Transaction.md",
    "chars": 503,
    "preview": "Database.Transaction Property\n=============================\nGets or sets a transaction to associate with new commands.\n "
  },
  {
    "path": "docs/api/DbExtensions/Database/Update.md",
    "chars": 1075,
    "preview": "Database.Update(Object) Method\n==============================\nExecutes an UPDATE command for the specified *entity*.\n  \n"
  },
  {
    "path": "docs/api/DbExtensions/Database/UpdateAsync.md",
    "chars": 1886,
    "preview": "Database.UpdateAsync(Object, Object, CancellationToken) Method\n========================================================="
  },
  {
    "path": "docs/api/DbExtensions/Database/UpdateAsync_1.md",
    "chars": 1768,
    "preview": "Database.UpdateAsync(Object, CancellationToken) Method\n======================================================\nExecutes a"
  },
  {
    "path": "docs/api/DbExtensions/Database/Update_1.md",
    "chars": 1193,
    "preview": "Database.Update(Object, Object) Method\n======================================\nExecutes an UPDATE command for the specifi"
  },
  {
    "path": "docs/api/DbExtensions/Database/_ctor.md",
    "chars": 1238,
    "preview": "Database(DbConnection) Constructor\n==================================\nInitializes a new instance of the [Database][1] cl"
  },
  {
    "path": "docs/api/DbExtensions/Database/_ctor_1.md",
    "chars": 1368,
    "preview": "Database(String, String) Constructor\n====================================\nInitializes a new instance of the [Database][1"
  },
  {
    "path": "docs/api/DbExtensions/DatabaseConfiguration/CommandTimeout.md",
    "chars": 563,
    "preview": "DatabaseConfiguration.CommandTimeout Property\n=============================================\nSpecifies a timeout to assig"
  },
  {
    "path": "docs/api/DbExtensions/DatabaseConfiguration/DefaultComplexPropertySeparator.md",
    "chars": 765,
    "preview": "DatabaseConfiguration.DefaultComplexPropertySeparator Property\n========================================================="
  },
  {
    "path": "docs/api/DbExtensions/DatabaseConfiguration/EnableBatchCommands.md",
    "chars": 810,
    "preview": "DatabaseConfiguration.EnableBatchCommands Property\n==================================================\n`true` to execute "
  },
  {
    "path": "docs/api/DbExtensions/DatabaseConfiguration/LastInsertIdCommand.md",
    "chars": 566,
    "preview": "DatabaseConfiguration.LastInsertIdCommand Property\n==================================================\nGets or sets the S"
  },
  {
    "path": "docs/api/DbExtensions/DatabaseConfiguration/Log.md",
    "chars": 502,
    "preview": "DatabaseConfiguration.Log Property\n==================================\nSpecifies the destination to write the SQL query o"
  },
  {
    "path": "docs/api/DbExtensions/DatabaseConfiguration/ParameterNameBuilder.md",
    "chars": 762,
    "preview": "DatabaseConfiguration.ParameterNameBuilder Property\n===================================================\nSpecifies a func"
  },
  {
    "path": "docs/api/DbExtensions/DatabaseConfiguration/ParameterPlaceholderBuilder.md",
    "chars": 683,
    "preview": "DatabaseConfiguration.ParameterPlaceholderBuilder Property\n==========================================================\nSp"
  },
  {
    "path": "docs/api/DbExtensions/DatabaseConfiguration/QuotePrefix.md",
    "chars": 639,
    "preview": "DatabaseConfiguration.QuotePrefix Property\n==========================================\nGets or sets the beginning charact"
  },
  {
    "path": "docs/api/DbExtensions/DatabaseConfiguration/QuoteSuffix.md",
    "chars": 636,
    "preview": "DatabaseConfiguration.QuoteSuffix Property\n==========================================\nGets or sets the ending character "
  },
  {
    "path": "docs/api/DbExtensions/DatabaseConfiguration/README.md",
    "chars": 4194,
    "preview": "DatabaseConfiguration Class\n===========================\nHolds configuration options that customize the behavior of [Data"
  },
  {
    "path": "docs/api/DbExtensions/DatabaseConfiguration/UseVersionMember.md",
    "chars": 577,
    "preview": "DatabaseConfiguration.UseVersionMember Property\n===============================================\n`true` to include versio"
  },
  {
    "path": "docs/api/DbExtensions/Extensions/GetBoolean.md",
    "chars": 1334,
    "preview": "Extensions.GetBoolean Method\n============================\nGets the value of the specified column as a [Boolean][1].\n  \n*"
  },
  {
    "path": "docs/api/DbExtensions/Extensions/GetByte.md",
    "chars": 1316,
    "preview": "Extensions.GetByte Method\n=========================\nGets the value of the specified column as a [Byte][1].\n  \n**Namespac"
  },
  {
    "path": "docs/api/DbExtensions/Extensions/GetChar.md",
    "chars": 1316,
    "preview": "Extensions.GetChar Method\n=========================\nGets the value of the specified column as a [Char][1].\n  \n**Namespac"
  },
  {
    "path": "docs/api/DbExtensions/Extensions/GetDateTime.md",
    "chars": 1344,
    "preview": "Extensions.GetDateTime Method\n=============================\nGets the value of the specified column as a [DateTime][1].\n "
  },
  {
    "path": "docs/api/DbExtensions/Extensions/GetDecimal.md",
    "chars": 1337,
    "preview": "Extensions.GetDecimal Method\n============================\nGets the value of the specified column as a [Decimal][1].\n  \n*"
  },
  {
    "path": "docs/api/DbExtensions/Extensions/GetDouble.md",
    "chars": 1330,
    "preview": "Extensions.GetDouble Method\n===========================\nGets the value of the specified column as a [Double][1].\n  \n**Na"
  },
  {
    "path": "docs/api/DbExtensions/Extensions/GetFloat.md",
    "chars": 1326,
    "preview": "Extensions.GetFloat Method\n==========================\nGets the value of the specified column as a [Single][1].\n  \n**Name"
  },
  {
    "path": "docs/api/DbExtensions/Extensions/GetInt16.md",
    "chars": 1324,
    "preview": "Extensions.GetInt16 Method\n==========================\nGets the value of the specified column as an [Int16][1].\n  \n**Name"
  },
  {
    "path": "docs/api/DbExtensions/Extensions/GetInt32.md",
    "chars": 1322,
    "preview": "Extensions.GetInt32 Method\n==========================\nGets the value of the specified column as an [Int32][1].\n  \n**Name"
  },
  {
    "path": "docs/api/DbExtensions/Extensions/GetInt64.md",
    "chars": 1323,
    "preview": "Extensions.GetInt64 Method\n==========================\nGets the value of the specified column as an [Int64][1].\n  \n**Name"
  },
  {
    "path": "docs/api/DbExtensions/Extensions/GetNullableBoolean.md",
    "chars": 2076,
    "preview": "Extensions.GetNullableBoolean(DbDataReader, Int32) Method\n=========================================================\nGets"
  },
  {
    "path": "docs/api/DbExtensions/Extensions/GetNullableBoolean_1.md",
    "chars": 2084,
    "preview": "Extensions.GetNullableBoolean(DbDataReader, String) Method\n==========================================================\nGe"
  },
  {
    "path": "docs/api/DbExtensions/Extensions/GetNullableByte.md",
    "chars": 2031,
    "preview": "Extensions.GetNullableByte(DbDataReader, Int32) Method\n======================================================\nGets the v"
  },
  {
    "path": "docs/api/DbExtensions/Extensions/GetNullableByte_1.md",
    "chars": 2039,
    "preview": "Extensions.GetNullableByte(DbDataReader, String) Method\n=======================================================\nGets the"
  },
  {
    "path": "docs/api/DbExtensions/Extensions/GetNullableChar.md",
    "chars": 2031,
    "preview": "Extensions.GetNullableChar(DbDataReader, Int32) Method\n======================================================\nGets the v"
  },
  {
    "path": "docs/api/DbExtensions/Extensions/GetNullableChar_1.md",
    "chars": 2039,
    "preview": "Extensions.GetNullableChar(DbDataReader, String) Method\n=======================================================\nGets the"
  },
  {
    "path": "docs/api/DbExtensions/Extensions/GetNullableDateTime.md",
    "chars": 2095,
    "preview": "Extensions.GetNullableDateTime(DbDataReader, Int32) Method\n==========================================================\nGe"
  },
  {
    "path": "docs/api/DbExtensions/Extensions/GetNullableDateTime_1.md",
    "chars": 2103,
    "preview": "Extensions.GetNullableDateTime(DbDataReader, String) Method\n===========================================================\n"
  },
  {
    "path": "docs/api/DbExtensions/Extensions/GetNullableDecimal.md",
    "chars": 2079,
    "preview": "Extensions.GetNullableDecimal(DbDataReader, Int32) Method\n=========================================================\nGets"
  },
  {
    "path": "docs/api/DbExtensions/Extensions/GetNullableDecimal_1.md",
    "chars": 2087,
    "preview": "Extensions.GetNullableDecimal(DbDataReader, String) Method\n==========================================================\nGe"
  },
  {
    "path": "docs/api/DbExtensions/Extensions/GetNullableDouble.md",
    "chars": 2063,
    "preview": "Extensions.GetNullableDouble(DbDataReader, Int32) Method\n========================================================\nGets t"
  },
  {
    "path": "docs/api/DbExtensions/Extensions/GetNullableDouble_1.md",
    "chars": 2071,
    "preview": "Extensions.GetNullableDouble(DbDataReader, String) Method\n=========================================================\nGets"
  },
  {
    "path": "docs/api/DbExtensions/Extensions/GetNullableFloat.md",
    "chars": 2054,
    "preview": "Extensions.GetNullableFloat(DbDataReader, Int32) Method\n=======================================================\nGets the"
  },
  {
    "path": "docs/api/DbExtensions/Extensions/GetNullableFloat_1.md",
    "chars": 2062,
    "preview": "Extensions.GetNullableFloat(DbDataReader, String) Method\n========================================================\nGets t"
  },
  {
    "path": "docs/api/DbExtensions/Extensions/GetNullableGuid.md",
    "chars": 2031,
    "preview": "Extensions.GetNullableGuid(DbDataReader, Int32) Method\n======================================================\nGets the v"
  },
  {
    "path": "docs/api/DbExtensions/Extensions/GetNullableGuid_1.md",
    "chars": 2039,
    "preview": "Extensions.GetNullableGuid(DbDataReader, String) Method\n=======================================================\nGets the"
  },
  {
    "path": "docs/api/DbExtensions/Extensions/GetNullableInt16.md",
    "chars": 2047,
    "preview": "Extensions.GetNullableInt16(DbDataReader, Int32) Method\n=======================================================\nGets the"
  },
  {
    "path": "docs/api/DbExtensions/Extensions/GetNullableInt16_1.md",
    "chars": 2055,
    "preview": "Extensions.GetNullableInt16(DbDataReader, String) Method\n========================================================\nGets t"
  },
  {
    "path": "docs/api/DbExtensions/Extensions/GetNullableInt32.md",
    "chars": 1988,
    "preview": "Extensions.GetNullableInt32(DbDataReader, Int32) Method\n=======================================================\nGets the"
  },
  {
    "path": "docs/api/DbExtensions/Extensions/GetNullableInt32_1.md",
    "chars": 2053,
    "preview": "Extensions.GetNullableInt32(DbDataReader, String) Method\n========================================================\nGets t"
  },
  {
    "path": "docs/api/DbExtensions/Extensions/GetNullableInt64.md",
    "chars": 2046,
    "preview": "Extensions.GetNullableInt64(DbDataReader, Int32) Method\n=======================================================\nGets the"
  },
  {
    "path": "docs/api/DbExtensions/Extensions/GetNullableInt64_1.md",
    "chars": 2054,
    "preview": "Extensions.GetNullableInt64(DbDataReader, String) Method\n========================================================\nGets t"
  },
  {
    "path": "docs/api/DbExtensions/Extensions/GetString.md",
    "chars": 1272,
    "preview": "Extensions.GetString Method\n===========================\nGets the value of the specified column as a [String][1].\n  \n**Na"
  },
  {
    "path": "docs/api/DbExtensions/Extensions/GetStringOrNull.md",
    "chars": 2027,
    "preview": "Extensions.GetStringOrNull(DbDataReader, Int32) Method\n======================================================\nGets the v"
  },
  {
    "path": "docs/api/DbExtensions/Extensions/GetStringOrNull_1.md",
    "chars": 1977,
    "preview": "Extensions.GetStringOrNull(DbDataReader, String) Method\n=======================================================\nGets the"
  },
  {
    "path": "docs/api/DbExtensions/Extensions/GetValue.md",
    "chars": 1310,
    "preview": "Extensions.GetValue Method\n==========================\nGets the value of the specified column.\n  \n**Namespace:** [DbExten"
  },
  {
    "path": "docs/api/DbExtensions/Extensions/GetValueOrNull.md",
    "chars": 2024,
    "preview": "Extensions.GetValueOrNull(DbDataReader, Int32) Method\n=====================================================\nGets the val"
  },
  {
    "path": "docs/api/DbExtensions/Extensions/GetValueOrNull_1.md",
    "chars": 2032,
    "preview": "Extensions.GetValueOrNull(DbDataReader, String) Method\n======================================================\nGets the v"
  },
  {
    "path": "docs/api/DbExtensions/Extensions/README.md",
    "chars": 8103,
    "preview": "Extensions Class\n================\nProvides extension methods for common ADO.NET objects.\n\n\nInheritance Hierarchy\n-------"
  },
  {
    "path": "docs/api/DbExtensions/README.md",
    "chars": 6956,
    "preview": "DbExtensions Namespace\n======================\nDbExtensions is a data-access framework with a strong focus on query compo"
  },
  {
    "path": "docs/api/DbExtensions/SQL/DELETE_FROM.md",
    "chars": 1797,
    "preview": "SQL.DELETE_FROM(SqlBuilder.ClauseStringHandler&lt;SqlClause.DELETE_FROM>) Method\n======================================="
  },
  {
    "path": "docs/api/DbExtensions/SQL/DELETE_FROM_1.md",
    "chars": 1637,
    "preview": "SQL.DELETE_FROM(String) Method\n==============================\nCreates and returns a new [SqlBuilder][1] initialized by a"
  },
  {
    "path": "docs/api/DbExtensions/SQL/INSERT_INTO.md",
    "chars": 1797,
    "preview": "SQL.INSERT_INTO(SqlBuilder.ClauseStringHandler&lt;SqlClause.INSERT_INTO>) Method\n======================================="
  },
  {
    "path": "docs/api/DbExtensions/SQL/INSERT_INTO_1.md",
    "chars": 1637,
    "preview": "SQL.INSERT_INTO(String) Method\n==============================\nCreates and returns a new [SqlBuilder][1] initialized by a"
  },
  {
    "path": "docs/api/DbExtensions/SQL/README.md",
    "chars": 3735,
    "preview": "SQL Class\n=========\nProvides a set of static (Shared in Visual Basic) methods to create [SqlBuilder][1] instances.\n\n\nInh"
  },
  {
    "path": "docs/api/DbExtensions/SQL/SELECT.md",
    "chars": 1674,
    "preview": "SQL.SELECT(SqlBuilder.ClauseStringHandler&lt;SqlClause.SELECT>) Method\n================================================="
  },
  {
    "path": "docs/api/DbExtensions/SQL/SELECT_1.md",
    "chars": 1537,
    "preview": "SQL.SELECT(String) Method\n=========================\nCreates and returns a new [SqlBuilder][1] initialized by appending t"
  },
  {
    "path": "docs/api/DbExtensions/SQL/UPDATE.md",
    "chars": 1672,
    "preview": "SQL.UPDATE(SqlBuilder.ClauseStringHandler&lt;SqlClause.UPDATE>) Method\n================================================="
  },
  {
    "path": "docs/api/DbExtensions/SQL/UPDATE_1.md",
    "chars": 1537,
    "preview": "SQL.UPDATE(String) Method\n=========================\nCreates and returns a new [SqlBuilder][1] initialized by appending t"
  },
  {
    "path": "docs/api/DbExtensions/SQL/WITH.md",
    "chars": 2030,
    "preview": "SQL.WITH(SqlBuilder.ClauseStringHandler&lt;SqlClause.WITH>) Method\n====================================================="
  },
  {
    "path": "docs/api/DbExtensions/SQL/WITH_1.md",
    "chars": 1907,
    "preview": "SQL.WITH(String) Method\n=======================\nCreates and returns a new [SqlBuilder][1] initialized by appending the W"
  },
  {
    "path": "docs/api/DbExtensions/SQL/WITH_2.md",
    "chars": 2069,
    "preview": "SQL.WITH(String, SqlBuilder) Method\n===================================\nCreates and returns a new [SqlBuilder][1] initia"
  },
  {
    "path": "docs/api/DbExtensions/SQL/WITH_3.md",
    "chars": 2074,
    "preview": "SQL.WITH(String, SqlSet) Method\n===============================\nCreates and returns a new [SqlBuilder][1] initialized by"
  },
  {
    "path": "docs/api/DbExtensions/SqlBuilder/Append.md",
    "chars": 1076,
    "preview": "SqlBuilder.Append(SqlBuilder.AppendStringHandler) Method\n========================================================\nAppend"
  },
  {
    "path": "docs/api/DbExtensions/SqlBuilder/AppendClause.md",
    "chars": 973,
    "preview": "SqlBuilder.AppendClause(SqlClause) Method\n=========================================\nAppends the SQL *clause*.\n  \n**Names"
  },
  {
    "path": "docs/api/DbExtensions/SqlBuilder/AppendClause__1.md",
    "chars": 980,
    "preview": "SqlBuilder.AppendClause&lt;TClause> Method\n==========================================\nAppends the SQL clause identified "
  },
  {
    "path": "docs/api/DbExtensions/SqlBuilder/AppendElse.md",
    "chars": 779,
    "preview": "SqlBuilder.AppendElse Method\n============================\nAppends the interpolated string *handler* if an antecedent cal"
  },
  {
    "path": "docs/api/DbExtensions/SqlBuilder/AppendElseIf.md",
    "chars": 947,
    "preview": "SqlBuilder.AppendElseIf Method\n==============================\nAppends the interpolated string *handler* if *condition* i"
  },
  {
    "path": "docs/api/DbExtensions/SqlBuilder/AppendIf.md",
    "chars": 761,
    "preview": "SqlBuilder.AppendIf Method\n==========================\nAppends the interpolated string *handler* if *condition* is `true`"
  },
  {
    "path": "docs/api/DbExtensions/SqlBuilder/AppendLine.md",
    "chars": 472,
    "preview": "SqlBuilder.AppendLine Method\n============================\nAppends the default line terminator to this instance.\n  \n**Nam"
  },
  {
    "path": "docs/api/DbExtensions/SqlBuilder/AppendSql.md",
    "chars": 530,
    "preview": "SqlBuilder.AppendSql Method\n===========================\nAppends *sql* to this instance.\n  \n**Namespace:** [DbExtensions]"
  },
  {
    "path": "docs/api/DbExtensions/SqlBuilder/Append_1.md",
    "chars": 1018,
    "preview": "SqlBuilder.Append(String) Method\n================================\nAppends *text* to this instance.\n  \n**Namespace:** [Db"
  },
  {
    "path": "docs/api/DbExtensions/SqlBuilder/Buffer.md",
    "chars": 457,
    "preview": "SqlBuilder.Buffer Property\n==========================\nThe underlying [StringBuilder][1].\n  \n**Namespace:** [DbExtensions"
  },
  {
    "path": "docs/api/DbExtensions/SqlBuilder/CROSS_JOIN.md",
    "chars": 1745,
    "preview": "SqlBuilder.CROSS_JOIN Method\n============================\nSets CROSS JOIN as the next clause, to be used by subsequent c"
  },
  {
    "path": "docs/api/DbExtensions/SqlBuilder/CROSS_JOIN_1.md",
    "chars": 1978,
    "preview": "SqlBuilder.CROSS_JOIN(SqlBuilder.ClauseStringHandler&lt;SqlClause.CROSS_JOIN>) Method\n=================================="
  },
  {
    "path": "docs/api/DbExtensions/SqlBuilder/CROSS_JOIN_2.md",
    "chars": 1848,
    "preview": "SqlBuilder.CROSS_JOIN(String) Method\n====================================\nAppends the CROSS JOIN clause using the provid"
  },
  {
    "path": "docs/api/DbExtensions/SqlBuilder/Clone.md",
    "chars": 436,
    "preview": "SqlBuilder.Clone Method\n=======================\nCreates and returns a copy of this instance.\n  \n**Namespace:** [DbExtens"
  },
  {
    "path": "docs/api/DbExtensions/SqlBuilder/CurrentClause.md",
    "chars": 493,
    "preview": "SqlBuilder.CurrentClause Property\n=================================\nGets or sets the current SQL clause, used to identif"
  },
  {
    "path": "docs/api/DbExtensions/SqlBuilder/DELETE_FROM.md",
    "chars": 1461,
    "preview": "SqlBuilder.DELETE_FROM(SqlBuilder.ClauseStringHandler&lt;SqlClause.DELETE_FROM>) Method\n================================"
  },
  {
    "path": "docs/api/DbExtensions/SqlBuilder/DELETE_FROM_1.md",
    "chars": 1324,
    "preview": "SqlBuilder.DELETE_FROM(String) Method\n=====================================\nAppends the DELETE FROM clause using the pro"
  },
  {
    "path": "docs/api/DbExtensions/SqlBuilder/FROM.md",
    "chars": 2055,
    "preview": "SqlBuilder.FROM Method\n======================\nSets FROM as the next clause, to be used by subsequent calls to clause con"
  },
  {
    "path": "docs/api/DbExtensions/SqlBuilder/FROM_1.md",
    "chars": 2293,
    "preview": "SqlBuilder.FROM(SqlBuilder, String) Method\n==========================================\nAppends the FROM clause using the "
  },
  {
    "path": "docs/api/DbExtensions/SqlBuilder/FROM_2.md",
    "chars": 2256,
    "preview": "SqlBuilder.FROM(SqlBuilder.ClauseStringHandler&lt;SqlClause.FROM>) Method\n=============================================="
  },
  {
    "path": "docs/api/DbExtensions/SqlBuilder/FROM_3.md",
    "chars": 2302,
    "preview": "SqlBuilder.FROM(SqlSet, String) Method\n======================================\nAppends the FROM clause using the provided"
  },
  {
    "path": "docs/api/DbExtensions/SqlBuilder/FROM_4.md",
    "chars": 2152,
    "preview": "SqlBuilder.FROM(String) Method\n==============================\nAppends the FROM clause using the provided *text*.\n  \n**Na"
  },
  {
    "path": "docs/api/DbExtensions/SqlBuilder/GROUP_BY.md",
    "chars": 1703,
    "preview": "SqlBuilder.GROUP_BY Method\n==========================\nSets GROUP BY as the next clause, to be used by subsequent calls t"
  },
  {
    "path": "docs/api/DbExtensions/SqlBuilder/GROUP_BY_1.md",
    "chars": 1926,
    "preview": "SqlBuilder.GROUP_BY(SqlBuilder.ClauseStringHandler&lt;SqlClause.GROUP_BY>) Method\n======================================"
  },
  {
    "path": "docs/api/DbExtensions/SqlBuilder/GROUP_BY_2.md",
    "chars": 1804,
    "preview": "SqlBuilder.GROUP_BY(String) Method\n==================================\nAppends the GROUP BY clause using the provided *te"
  },
  {
    "path": "docs/api/DbExtensions/SqlBuilder/HAVING.md",
    "chars": 1661,
    "preview": "SqlBuilder.HAVING Method\n========================\nSets HAVING as the next clause, to be used by subsequent calls to clau"
  },
  {
    "path": "docs/api/DbExtensions/SqlBuilder/HAVING_1.md",
    "chars": 1874,
    "preview": "SqlBuilder.HAVING(SqlBuilder.ClauseStringHandler&lt;SqlClause.HAVING>) Method\n=========================================="
  },
  {
    "path": "docs/api/DbExtensions/SqlBuilder/HAVING_2.md",
    "chars": 1760,
    "preview": "SqlBuilder.HAVING(String) Method\n================================\nAppends the HAVING clause using the provided *text*.\n "
  },
  {
    "path": "docs/api/DbExtensions/SqlBuilder/INNER_JOIN.md",
    "chars": 1745,
    "preview": "SqlBuilder.INNER_JOIN Method\n============================\nSets INNER JOIN as the next clause, to be used by subsequent c"
  },
  {
    "path": "docs/api/DbExtensions/SqlBuilder/INNER_JOIN_1.md",
    "chars": 1978,
    "preview": "SqlBuilder.INNER_JOIN(SqlBuilder.ClauseStringHandler&lt;SqlClause.INNER_JOIN>) Method\n=================================="
  },
  {
    "path": "docs/api/DbExtensions/SqlBuilder/INNER_JOIN_2.md",
    "chars": 1848,
    "preview": "SqlBuilder.INNER_JOIN(String) Method\n====================================\nAppends the INNER JOIN clause using the provid"
  },
  {
    "path": "docs/api/DbExtensions/SqlBuilder/INSERT_INTO.md",
    "chars": 1461,
    "preview": "SqlBuilder.INSERT_INTO(SqlBuilder.ClauseStringHandler&lt;SqlClause.INSERT_INTO>) Method\n================================"
  },
  {
    "path": "docs/api/DbExtensions/SqlBuilder/INSERT_INTO_1.md",
    "chars": 1324,
    "preview": "SqlBuilder.INSERT_INTO(String) Method\n=====================================\nAppends the INSERT INTO clause using the pro"
  },
  {
    "path": "docs/api/DbExtensions/SqlBuilder/InsertText.md",
    "chars": 782,
    "preview": "SqlBuilder.InsertText Method\n============================\nInserts a string into this instance at the specified character"
  },
  {
    "path": "docs/api/DbExtensions/SqlBuilder/IsEmpty.md",
    "chars": 438,
    "preview": "SqlBuilder.IsEmpty Property\n===========================\nReturns `true` if the buffer is empty.\n  \n**Namespace:** [DbExte"
  },
  {
    "path": "docs/api/DbExtensions/SqlBuilder/JOIN.md",
    "chars": 1619,
    "preview": "SqlBuilder.JOIN Method\n======================\nSets JOIN as the next clause, to be used by subsequent calls to clause con"
  },
  {
    "path": "docs/api/DbExtensions/SqlBuilder/JOIN_1.md",
    "chars": 1822,
    "preview": "SqlBuilder.JOIN(SqlBuilder.ClauseStringHandler&lt;SqlClause.JOIN>) Method\n=============================================="
  },
  {
    "path": "docs/api/DbExtensions/SqlBuilder/JOIN_2.md",
    "chars": 1716,
    "preview": "SqlBuilder.JOIN(String) Method\n==============================\nAppends the JOIN clause using the provided *text*.\n  \n**Na"
  },
  {
    "path": "docs/api/DbExtensions/SqlBuilder/JoinSql.md",
    "chars": 1860,
    "preview": "SqlBuilder.JoinSql(String, SqlBuilder[]) Method\n===============================================\nConcatenates a specified"
  },
  {
    "path": "docs/api/DbExtensions/SqlBuilder/JoinSql_1.md",
    "chars": 2017,
    "preview": "SqlBuilder.JoinSql(String, IEnumerable&lt;SqlBuilder>) Method\n=========================================================="
  },
  {
    "path": "docs/api/DbExtensions/SqlBuilder/LEFT_JOIN.md",
    "chars": 1724,
    "preview": "SqlBuilder.LEFT_JOIN Method\n===========================\nSets LEFT JOIN as the next clause, to be used by subsequent call"
  },
  {
    "path": "docs/api/DbExtensions/SqlBuilder/LEFT_JOIN_1.md",
    "chars": 1952,
    "preview": "SqlBuilder.LEFT_JOIN(SqlBuilder.ClauseStringHandler&lt;SqlClause.LEFT_JOIN>) Method\n===================================="
  },
  {
    "path": "docs/api/DbExtensions/SqlBuilder/LEFT_JOIN_2.md",
    "chars": 1826,
    "preview": "SqlBuilder.LEFT_JOIN(String) Method\n===================================\nAppends the LEFT JOIN clause using the provided "
  },
  {
    "path": "docs/api/DbExtensions/SqlBuilder/LIMIT.md",
    "chars": 1862,
    "preview": "SqlBuilder.LIMIT Method\n=======================\nSets LIMIT as the next clause, to be used by subsequent calls to clause "
  },
  {
    "path": "docs/api/DbExtensions/SqlBuilder/LIMIT_1.md",
    "chars": 2069,
    "preview": "SqlBuilder.LIMIT(SqlBuilder.ClauseStringHandler&lt;SqlClause.LIMIT>) Method\n============================================"
  },
  {
    "path": "docs/api/DbExtensions/SqlBuilder/LIMIT_2.md",
    "chars": 1956,
    "preview": "SqlBuilder.LIMIT(Int32) Method\n==============================\nAppends the LIMIT clause using the provided *maxRecords* p"
  },
  {
    "path": "docs/api/DbExtensions/SqlBuilder/LIMIT_3.md",
    "chars": 1960,
    "preview": "SqlBuilder.LIMIT(String) Method\n===============================\nAppends the LIMIT clause using the provided *text*.\n  \n*"
  },
  {
    "path": "docs/api/DbExtensions/SqlBuilder/NextClause.md",
    "chars": 557,
    "preview": "SqlBuilder.NextClause Property\n==============================\nGets or sets the next SQL clause. Used by clause continuat"
  },
  {
    "path": "docs/api/DbExtensions/SqlBuilder/OFFSET.md",
    "chars": 1887,
    "preview": "SqlBuilder.OFFSET Method\n========================\nSets OFFSET as the next clause, to be used by subsequent calls to clau"
  },
  {
    "path": "docs/api/DbExtensions/SqlBuilder/OFFSET_1.md",
    "chars": 2099,
    "preview": "SqlBuilder.OFFSET(SqlBuilder.ClauseStringHandler&lt;SqlClause.OFFSET>) Method\n=========================================="
  },
  {
    "path": "docs/api/DbExtensions/SqlBuilder/OFFSET_2.md",
    "chars": 1981,
    "preview": "SqlBuilder.OFFSET(Int32) Method\n===============================\nAppends the OFFSET clause using the provided *startIndex"
  }
]

// ... and 303 more files (download for full content)

About this extraction

This page contains the full source code of the maxtoroq/DbExtensions GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 503 files (1.3 MB), approximately 298.2k tokens, and a symbol index with 1361 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!