Full Code of TwentyFourMinutes/Venflow for AI

dev 6552be5ccea1 cached
541 files
7.1 MB
1.9M tokens
1511 symbols
1 requests
Download .txt
Showing preview only (7,613K chars total). Download the full file or copy to clipboard to get everything.
Repository: TwentyFourMinutes/Venflow
Branch: dev
Commit: 6552be5ccea1
Files: 541
Total size: 7.1 MB

Directory structure:
gitextract_1065j4ob/

├── .editorconfig
├── .gitattributes
├── .github/
│   ├── FUNDING.yml
│   ├── ISSUE_TEMPLATE/
│   │   ├── ---bug-report.md
│   │   ├── ---feature request.md
│   │   └── config.yml
│   ├── dependabot.yml
│   └── workflows/
│       ├── benchmarks.yml
│       ├── build.yml
│       ├── cla.yml
│       ├── codeql-analysis.yml
│       ├── devskim-analysis.yml
│       ├── publish.yml
│       ├── securitycodescan-analysis.yml
│       └── shiftleft-analysis.yml
├── .gitignore
├── CLA.md
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── Directory.Build.props
├── LICENSE
├── README.md
├── SECURITY.md
├── Venflow.sln
├── Venflow.snk
├── benchmarks/
│   ├── DeleteBatch.csv
│   ├── DeleteBatch.md
│   ├── DeleteSingle.csv
│   ├── DeleteSingle.md
│   ├── InsertBatch.csv
│   ├── InsertBatch.md
│   ├── InsertBatchWithRelations.csv
│   ├── InsertBatchWithRelations.md
│   ├── InsertSingle.csv
│   ├── InsertSingle.md
│   ├── InsertSingleWithRelations.csv
│   ├── InsertSingleWithRelations.md
│   ├── Instantiation.csv
│   ├── Instantiation.md
│   ├── QueryBatch.csv
│   ├── QueryBatch.md
│   ├── QueryBatchWithRelations.csv
│   ├── QueryBatchWithRelations.md
│   ├── QuerySingle.csv
│   ├── QuerySingle.md
│   ├── QuerySingleWithParameter.csv
│   ├── QuerySingleWithParameter.md
│   ├── QuerySingleWithRelations.csv
│   ├── QuerySingleWithRelations.md
│   ├── UpdateBatch.csv
│   ├── UpdateBatch.md
│   ├── UpdateSingle.csv
│   └── UpdateSingle.md
├── docs/
│   ├── api/
│   │   ├── System.Runtime.CompilerServices.IgnoresAccessChecksToAttribute.html
│   │   ├── System.Runtime.CompilerServices.NullableAttribute.html
│   │   ├── System.Runtime.CompilerServices.NullableContextAttribute.html
│   │   ├── System.Runtime.CompilerServices.html
│   │   ├── Venflow.AspNetCore.VenflowServiceCollectionExtensions.html
│   │   ├── Venflow.AspNetCore.html
│   │   ├── Venflow.Commands.IBaseInsertRelationBuilder-2.html
│   │   ├── Venflow.Commands.IBaseQueryRelationBuilder-3.html
│   │   ├── Venflow.Commands.IDeleteCommand-1.html
│   │   ├── Venflow.Commands.IDeleteCommandBuilder-1.html
│   │   ├── Venflow.Commands.IInsertCommand-1.html
│   │   ├── Venflow.Commands.IInsertCommandBuilder-1.html
│   │   ├── Venflow.Commands.IInsertRelationBuilder-2.html
│   │   ├── Venflow.Commands.IPreCommandBuilder-2.html
│   │   ├── Venflow.Commands.IQueryCommand-2.html
│   │   ├── Venflow.Commands.IQueryCommandBuilder-2.html
│   │   ├── Venflow.Commands.IQueryRelationBuilder-3.html
│   │   ├── Venflow.Commands.ISpecficVenflowCommandBuilder-2.html
│   │   ├── Venflow.Commands.IUpdateCommand-1.html
│   │   ├── Venflow.Commands.IUpdateCommandBuilder-1.html
│   │   ├── Venflow.Commands.IVenflowCommand-1.html
│   │   ├── Venflow.Commands.IVenflowCommandBuilder-1.html
│   │   ├── Venflow.Commands.html
│   │   ├── Venflow.Database.html
│   │   ├── Venflow.DatabaseConfigurationOptionsBuilder.html
│   │   ├── Venflow.DatabaseOptionsBuilder-1.html
│   │   ├── Venflow.Enums.CommandType.html
│   │   ├── Venflow.Enums.ForeignTruncateOptions.html
│   │   ├── Venflow.Enums.IdentityTruncateOptions.html
│   │   ├── Venflow.Enums.JoinBehaviour.html
│   │   ├── Venflow.Enums.LoggingBehavior.html
│   │   ├── Venflow.Enums.html
│   │   ├── Venflow.Extensions.Logging.DatabaseOptionsBuilderExtensions.html
│   │   ├── Venflow.Extensions.Logging.html
│   │   ├── Venflow.FormattableSqlStringBuilder.html
│   │   ├── Venflow.IDatabaseTransaction.html
│   │   ├── Venflow.IKey-2.html
│   │   ├── Venflow.IKey.html
│   │   ├── Venflow.IParameterTypeHandler.html
│   │   ├── Venflow.InvalidEntityRelationException.html
│   │   ├── Venflow.Json.JsonKeyConverterFactory.html
│   │   ├── Venflow.Json.html
│   │   ├── Venflow.Key-2.html
│   │   ├── Venflow.KeyConverter.html
│   │   ├── Venflow.LoggerCallback.html
│   │   ├── Venflow.Modeling.Definitions.Builder.IEntityBuilder-1.html
│   │   ├── Venflow.Modeling.Definitions.Builder.IForeignKeyRelationBuilder-2.html
│   │   ├── Venflow.Modeling.Definitions.Builder.ILeftRelationBuilder-1.html
│   │   ├── Venflow.Modeling.Definitions.Builder.IMultiRightRelationBuilder-2.html
│   │   ├── Venflow.Modeling.Definitions.Builder.INotRequiredMultiRightRelationBuilder-2.html
│   │   ├── Venflow.Modeling.Definitions.Builder.INotRequiredSingleRightRelationBuilder-2.html
│   │   ├── Venflow.Modeling.Definitions.Builder.IPropertyBuilder.html
│   │   ├── Venflow.Modeling.Definitions.Builder.IRequiredMultiRightRelationBuilder-2.html
│   │   ├── Venflow.Modeling.Definitions.Builder.IRequiredSingleRightRelationBuilder-2.html
│   │   ├── Venflow.Modeling.Definitions.Builder.html
│   │   ├── Venflow.Modeling.Definitions.EntityConfiguration-1.html
│   │   ├── Venflow.Modeling.Definitions.html
│   │   ├── Venflow.NewtonsoftJson.NewtonsoftJsonKeyConverter.html
│   │   ├── Venflow.NewtonsoftJson.html
│   │   ├── Venflow.NpgsqlCommandExtensions.html
│   │   ├── Venflow.NpgsqlQuotedNameTranslator.html
│   │   ├── Venflow.ParameterTypeHandler.html
│   │   ├── Venflow.Table-1.html
│   │   ├── Venflow.TableBase-1.html
│   │   ├── Venflow.TypeArgumentException.html
│   │   ├── Venflow.VenflowConfiguration.html
│   │   ├── Venflow.VenflowDbType.html
│   │   ├── Venflow.html
│   │   ├── index.html
│   │   └── toc.html
│   ├── docfx/
│   │   ├── .gitignore
│   │   ├── api/
│   │   │   ├── .gitignore
│   │   │   ├── System.Runtime.CompilerServices.IgnoresAccessChecksToAttribute.html
│   │   │   ├── System.Runtime.CompilerServices.NullableAttribute.html
│   │   │   ├── System.Runtime.CompilerServices.NullableContextAttribute.html
│   │   │   ├── System.Runtime.CompilerServices.html
│   │   │   ├── Venflow.AspNetCore.VenflowServiceCollectionExtensions.html
│   │   │   ├── Venflow.AspNetCore.html
│   │   │   ├── Venflow.Commands.IBaseInsertRelationBuilder-2.html
│   │   │   ├── Venflow.Commands.IBaseQueryRelationBuilder-3.html
│   │   │   ├── Venflow.Commands.IDeleteCommand-1.html
│   │   │   ├── Venflow.Commands.IDeleteCommandBuilder-1.html
│   │   │   ├── Venflow.Commands.IInsertCommand-1.html
│   │   │   ├── Venflow.Commands.IInsertCommandBuilder-1.html
│   │   │   ├── Venflow.Commands.IInsertRelationBuilder-2.html
│   │   │   ├── Venflow.Commands.IPreCommandBuilder-2.html
│   │   │   ├── Venflow.Commands.IQueryCommand-2.html
│   │   │   ├── Venflow.Commands.IQueryCommandBuilder-2.html
│   │   │   ├── Venflow.Commands.IQueryRelationBuilder-3.html
│   │   │   ├── Venflow.Commands.ISpecficVenflowCommandBuilder-2.html
│   │   │   ├── Venflow.Commands.IUpdateCommand-1.html
│   │   │   ├── Venflow.Commands.IUpdateCommandBuilder-1.html
│   │   │   ├── Venflow.Commands.IVenflowCommand-1.html
│   │   │   ├── Venflow.Commands.IVenflowCommandBuilder-1.html
│   │   │   ├── Venflow.Commands.html
│   │   │   ├── Venflow.Database.html
│   │   │   ├── Venflow.DatabaseConfigurationOptionsBuilder.html
│   │   │   ├── Venflow.DatabaseOptionsBuilder-1.html
│   │   │   ├── Venflow.DatabaseOptionsBuilder.html
│   │   │   ├── Venflow.Enums.CommandType.html
│   │   │   ├── Venflow.Enums.ForeignTruncateOptions.html
│   │   │   ├── Venflow.Enums.IdentityTruncateOptions.html
│   │   │   ├── Venflow.Enums.JoinBehaviour.html
│   │   │   ├── Venflow.Enums.LoggingBehavior.html
│   │   │   ├── Venflow.Enums.html
│   │   │   ├── Venflow.Extensions.Logging.DatabaseOptionsBuilderExtensions.html
│   │   │   ├── Venflow.Extensions.Logging.html
│   │   │   ├── Venflow.FormattableSqlStringBuilder.html
│   │   │   ├── Venflow.IDatabaseTransaction.html
│   │   │   ├── Venflow.IKey-2.html
│   │   │   ├── Venflow.IKey.html
│   │   │   ├── Venflow.IParameterTypeHandler.html
│   │   │   ├── Venflow.InvalidEntityRelationException.html
│   │   │   ├── Venflow.Json.JsonKeyConverterFacotry.html
│   │   │   ├── Venflow.Json.JsonKeyConverterFactory.html
│   │   │   ├── Venflow.Json.html
│   │   │   ├── Venflow.Key-2.html
│   │   │   ├── Venflow.KeyConverter.html
│   │   │   ├── Venflow.LoggerCallback.html
│   │   │   ├── Venflow.Modeling.Definitions.Builder.IForeignKeyRelationBuilder-2.html
│   │   │   ├── Venflow.Modeling.Definitions.Builder.ILeftRelationBuilder-1.html
│   │   │   ├── Venflow.Modeling.Definitions.Builder.IMultiRightRelationBuilder-2.html
│   │   │   ├── Venflow.Modeling.Definitions.Builder.INotRequiredMultiRightRelationBuilder-2.html
│   │   │   ├── Venflow.Modeling.Definitions.Builder.INotRequiredSingleRightRelationBuilder-2.html
│   │   │   ├── Venflow.Modeling.Definitions.Builder.IRequiredMultiRightRelationBuilder-2.html
│   │   │   ├── Venflow.Modeling.Definitions.Builder.IRequiredSingleRightRelationBuilder-2.html
│   │   │   ├── Venflow.Modeling.Definitions.Builder.html
│   │   │   ├── Venflow.Modeling.Definitions.EntityConfiguration-1.html
│   │   │   ├── Venflow.Modeling.Definitions.html
│   │   │   ├── Venflow.NewtonsoftJson.NewtonsoftJsonKeyConverter.html
│   │   │   ├── Venflow.NewtonsoftJson.html
│   │   │   ├── Venflow.NpgsqlCommandExtensions.html
│   │   │   ├── Venflow.ParameterTypeHandler.html
│   │   │   ├── Venflow.Table-1.html
│   │   │   ├── Venflow.TableBase-1.html
│   │   │   ├── Venflow.Tests.Keys.Key-1.html
│   │   │   ├── Venflow.Tests.Keys.html
│   │   │   ├── Venflow.TypeArgumentException.html
│   │   │   ├── Venflow.VenflowConfiguration.html
│   │   │   ├── Venflow.html
│   │   │   ├── index.html
│   │   │   ├── index.md
│   │   │   └── toc.html
│   │   ├── docfx.json
│   │   ├── filterConfig.yml
│   │   ├── guides/
│   │   │   ├── advanced/
│   │   │   │   ├── aspnetcore.md
│   │   │   │   ├── enums.md
│   │   │   │   ├── interpolation.md
│   │   │   │   ├── logging.md
│   │   │   │   ├── logging_extensions.md
│   │   │   │   ├── nullables.md
│   │   │   │   ├── prepared_statements.md
│   │   │   │   ├── query_command_cache.md
│   │   │   │   ├── strong_key.md
│   │   │   │   └── validation.md
│   │   │   ├── getting_started/
│   │   │   │   ├── installation.md
│   │   │   │   └── setup.md
│   │   │   ├── introduction/
│   │   │   │   └── intro.md
│   │   │   ├── operations/
│   │   │   │   ├── count.md
│   │   │   │   ├── delete.md
│   │   │   │   ├── execute.md
│   │   │   │   ├── insert.md
│   │   │   │   ├── query.md
│   │   │   │   ├── truncate.md
│   │   │   │   └── update.md
│   │   │   └── toc.yml
│   │   ├── index.json
│   │   ├── index.md
│   │   ├── search-stopwords.json
│   │   ├── styles/
│   │   │   ├── dark.css
│   │   │   ├── docfx.css
│   │   │   ├── docfx.js
│   │   │   ├── docfx.vendor.css
│   │   │   ├── docfx.vendor.js
│   │   │   ├── docfx.vendor.minify.css
│   │   │   ├── gray.css
│   │   │   ├── light.css
│   │   │   ├── lunr.js
│   │   │   ├── main.css
│   │   │   ├── main.js
│   │   │   ├── master.css
│   │   │   ├── material.css
│   │   │   ├── search-worker.js
│   │   │   ├── styleswitcher.js
│   │   │   ├── theme-switcher.css
│   │   │   ├── tomorrow.css
│   │   │   └── vs2015.css
│   │   ├── templates/
│   │   │   └── light-dark-theme/
│   │   │       ├── README.md
│   │   │       ├── discord.net-license.md
│   │   │       ├── docfx-material-license.md
│   │   │       ├── partials/
│   │   │       │   ├── affix.tmpl.partial
│   │   │       │   ├── head.tmpl.partial
│   │   │       │   └── scripts.tmpl.partial
│   │   │       └── styles/
│   │   │           ├── dark.css
│   │   │           ├── docfx.vendor.minify.css
│   │   │           ├── gray.css
│   │   │           ├── light.css
│   │   │           ├── master.css
│   │   │           ├── material.css
│   │   │           ├── styleswitcher.js
│   │   │           ├── theme-switcher.css
│   │   │           ├── tomorrow.css
│   │   │           └── vs2015.css
│   │   ├── toc.yml
│   │   └── xrefmap.yml
│   ├── guides/
│   │   ├── advanced/
│   │   │   ├── aspnetcore.html
│   │   │   ├── enums.html
│   │   │   ├── interpolation.html
│   │   │   ├── logging.html
│   │   │   ├── logging_extensions.html
│   │   │   ├── nullables.html
│   │   │   ├── prepared_statements.html
│   │   │   ├── query_command_cache.html
│   │   │   ├── strong_key.html
│   │   │   └── validation.html
│   │   ├── getting_started/
│   │   │   ├── installation.html
│   │   │   └── setup.html
│   │   ├── introduction/
│   │   │   └── intro.html
│   │   ├── operations/
│   │   │   ├── count.html
│   │   │   ├── delete.html
│   │   │   ├── execute.html
│   │   │   ├── insert.html
│   │   │   ├── query.html
│   │   │   ├── truncate.html
│   │   │   └── update.html
│   │   └── toc.html
│   ├── index.html
│   ├── index.json
│   ├── manifest.json
│   ├── search-stopwords.json
│   ├── styles/
│   │   ├── dark.css
│   │   ├── docfx.css
│   │   ├── docfx.js
│   │   ├── docfx.vendor.css
│   │   ├── docfx.vendor.js
│   │   ├── docfx.vendor.minify.css
│   │   ├── gray.css
│   │   ├── light.css
│   │   ├── lunr.js
│   │   ├── main.css
│   │   ├── main.js
│   │   ├── master.css
│   │   ├── material.css
│   │   ├── search-worker.js
│   │   ├── styleswitcher.js
│   │   ├── theme-switcher.css
│   │   ├── tomorrow.css
│   │   └── vs2015.css
│   ├── toc.html
│   └── xrefmap.yml
├── signatures/
│   └── version1/
│       └── cla.json
├── src/
│   ├── Venflow/
│   │   ├── CastTypeHandler.cs
│   │   ├── Commands/
│   │   │   ├── IBaseInsertRelationBuilder.cs
│   │   │   ├── IBaseQueryRelationBuilder.cs
│   │   │   ├── IDeleteCommand.cs
│   │   │   ├── IDeleteCommandBuilder.cs
│   │   │   ├── IInsertCommand.cs
│   │   │   ├── IInsertCommandBuilder.cs
│   │   │   ├── IInsertRelationBuilder.cs
│   │   │   ├── IPreCommandBuilder.cs
│   │   │   ├── IQueryCommand.cs
│   │   │   ├── IQueryCommandBuilder.cs
│   │   │   ├── IQueryRelationBuilder.cs
│   │   │   ├── ISpecficVenflowCommandBuilder.cs
│   │   │   ├── IUpdateCommand.cs
│   │   │   ├── IUpdateCommandBuilder.cs
│   │   │   ├── IVenflowCommand.cs
│   │   │   ├── IVenflowCommandBuilder.cs
│   │   │   ├── InsertCacheKey.cs
│   │   │   ├── InsertCacheKeyComparer.cs
│   │   │   ├── InsertRelationBuilder.cs
│   │   │   ├── InterpolatedSqlExpressionConverter.cs
│   │   │   ├── QueryCacheKey.cs
│   │   │   ├── QueryCacheKeyComparer.cs
│   │   │   ├── QueryRelationBuilder.cs
│   │   │   ├── RelationBuilderValues.cs
│   │   │   ├── RelationPath.cs
│   │   │   ├── SqlQueryCacheKey.cs
│   │   │   ├── SqlQueryCacheKeyComparer.cs
│   │   │   ├── VenflowBaseCommand.cs
│   │   │   ├── VenflowCommandBuilder.cs
│   │   │   ├── VenflowDeleteCommand.cs
│   │   │   ├── VenflowDeleteCommandBuilder.cs
│   │   │   ├── VenflowInsertCommand.cs
│   │   │   ├── VenflowInsertCommandBuilder.cs
│   │   │   ├── VenflowQueryCommand.cs
│   │   │   ├── VenflowQueryCommandBuilder.cs
│   │   │   ├── VenflowUpdateCommand.cs
│   │   │   └── VenflowUpdateCommandBuilder.cs
│   │   ├── Database.cs
│   │   ├── DatabaseConfiguration.cs
│   │   ├── DatabaseConfigurationOptionsBuilder.cs
│   │   ├── DatabaseOptionsBuilder.cs
│   │   ├── DatabaseTransaction.cs
│   │   ├── DualKeyCollection.cs
│   │   ├── Dynamic/
│   │   │   ├── IL/
│   │   │   │   ├── IILBaseInst.cs
│   │   │   │   ├── ILAsyncGenerator.cs
│   │   │   │   ├── ILFieldInfo.cs
│   │   │   │   ├── ILGeneratorExtensions.cs
│   │   │   │   ├── ILGhostGenerator.cs
│   │   │   │   ├── ILInst.cs
│   │   │   │   └── ILSwitchBuilder.cs
│   │   │   ├── IgnoresAccessChecksToAttribute.cs
│   │   │   ├── Inserter/
│   │   │   │   ├── EntityRelationHolder.cs
│   │   │   │   ├── InsertionFactory.cs
│   │   │   │   ├── InsertionFactoryCompiler.cs
│   │   │   │   └── InsertionSourceCompiler.cs
│   │   │   ├── Instantiater/
│   │   │   │   └── DatabaseTableFactory.cs
│   │   │   ├── Materializer/
│   │   │   │   ├── MaterializerFactory.cs
│   │   │   │   ├── MaterializerFactoryCompiler.cs
│   │   │   │   ├── MaterializerSourceCompiler.cs
│   │   │   │   ├── QueryEntityHolder.cs
│   │   │   │   └── SqlExpression.cs
│   │   │   ├── NullableAttribute.cs
│   │   │   ├── NullableContextAttribute.cs
│   │   │   ├── Proxies/
│   │   │   │   ├── ChangeTracker.cs
│   │   │   │   ├── ChangeTrackerFactory.cs
│   │   │   │   └── IEntityProxy.cs
│   │   │   ├── Retriever/
│   │   │   │   └── ValueRetrieverFactory.cs
│   │   │   ├── SpanExtensions.cs
│   │   │   └── TypeFactory.cs
│   │   ├── Enums/
│   │   │   ├── ColumnListStringOptions.cs
│   │   │   ├── ColumnOptions.cs
│   │   │   ├── CommandType.cs
│   │   │   ├── ForeignKeyLoaction.cs
│   │   │   ├── ForeignTruncateOptions.cs
│   │   │   ├── IdentityTruncateOptions.cs
│   │   │   ├── InsertCacheKeyOptions.cs
│   │   │   ├── JoinBehaviour.cs
│   │   │   ├── LoggingBehaviour.cs
│   │   │   ├── QueryGenerationOptions.cs
│   │   │   ├── RelationPartType.cs
│   │   │   ├── RelationType.cs
│   │   │   └── SqlExpressionOptions.cs
│   │   ├── FodyWeavers.xml
│   │   ├── FodyWeavers.xsd
│   │   ├── FormattableSqlStringBuilder.cs
│   │   ├── IParameterTypeHandler.cs
│   │   ├── InvalidEntityRelationException.cs
│   │   ├── Modeling/
│   │   │   ├── DatabaseConfigurationFactory.cs
│   │   │   ├── Definitions/
│   │   │   │   ├── Builder/
│   │   │   │   │   ├── EntityBuilder.cs
│   │   │   │   │   ├── IForeignKeyRelationBuilder.cs
│   │   │   │   │   ├── ILeftRelationBuilder.cs
│   │   │   │   │   ├── IMultiRightRelationBuilder.cs
│   │   │   │   │   ├── INotRequiredMultiRightRelationBuilder.cs
│   │   │   │   │   ├── INotRequiredSingleRightRelationBuilder.cs
│   │   │   │   │   ├── IRequiredMultiRightRelationBuilder.cs
│   │   │   │   │   ├── IRequiredSingleRightRelationBuilder.cs
│   │   │   │   │   ├── PropertyBuilder.cs
│   │   │   │   │   └── RightRelationBuilder.cs
│   │   │   │   ├── ColumnDefinition.cs
│   │   │   │   ├── EntityConfiguration.cs
│   │   │   │   ├── EntityFactory.cs
│   │   │   │   ├── EntityRelationDefinition.cs
│   │   │   │   └── ExpressionExtensions.cs
│   │   │   ├── Entity.cs
│   │   │   ├── EntityColumn.cs
│   │   │   ├── EntityColumnCollection.cs
│   │   │   └── EntityRelation.cs
│   │   ├── NpgsqlCommandExtensions.cs
│   │   ├── NpgsqlDataReaderExtensions.cs
│   │   ├── NpgsqlParameterExtensions.cs
│   │   ├── NpgsqlQuotedNameTranslator.cs
│   │   ├── ParameterTypeHandler.cs
│   │   ├── Properties/
│   │   │   ├── AssemblyInfo.cs
│   │   │   └── GlobalUsings.cs
│   │   ├── PropertyInfoExtensions.cs
│   │   ├── Table.cs
│   │   ├── TableBase.cs
│   │   ├── TrioKeyCollection.cs
│   │   ├── TypeArgumentException.cs
│   │   ├── TypeExtensions.cs
│   │   ├── UInt64Handler.cs
│   │   ├── Venflow.csproj
│   │   ├── Venflow.xml
│   │   ├── VenflowConfiguration.cs
│   │   └── VenflowDbType.cs
│   ├── Venflow.AspNetCore/
│   │   ├── ServiceCollectionExtensions.cs
│   │   ├── Venflow.AspNetCore.csproj
│   │   └── Venflow.AspNetCore.xml
│   ├── Venflow.Extensions.Logging/
│   │   ├── DatabaseOptionsBuilderExtensions.cs
│   │   ├── Venflow.Extensions.Logging.csproj
│   │   └── Venflow.Extensions.Logging.xml
│   ├── Venflow.Generators/
│   │   ├── Assemblies.cs
│   │   ├── CompilationExtensions.cs
│   │   ├── GeneratorExecutionContextExtensions.cs
│   │   ├── KeyGenerator.cs
│   │   ├── Properties/
│   │   │   ├── GeneratedKeyAttribute.cs
│   │   │   └── launchSettings.json
│   │   ├── Venflow.Generators.csproj
│   │   └── Venflow.Generators.xml
│   ├── Venflow.Keys/
│   │   ├── JsonKeyConverter.cs
│   │   ├── Key.cs
│   │   ├── KeyConverter.cs
│   │   ├── Properties/
│   │   │   ├── AssemblyInfo.cs
│   │   │   └── GlobalUsings.cs
│   │   ├── Venflow.Keys.csproj
│   │   └── Venflow.Keys.xml
│   └── Venflow.NewtonsoftJson/
│       ├── NewtonsoftJsonKeyConverter.cs
│       ├── Venflow.NewtonsoftJson.csproj
│       └── Venflow.NewtonsoftJson.xml
└── test/
    ├── Directory.Build.props
    ├── Venflow.Benchmarks/
    │   ├── BenchmarkHandler.cs
    │   ├── Benchmarks/
    │   │   ├── BenchmarkBase.cs
    │   │   ├── DeleteBenchmarks/
    │   │   │   ├── DeleteBatchAsyncBenchmark.cs
    │   │   │   └── DeleteSingleAsyncBenchmark.cs
    │   │   ├── InsertBenchmarks/
    │   │   │   ├── InsertBatchAsyncBenchmark.cs
    │   │   │   ├── InsertBatchWithRelationsAsyncBenchmark.cs
    │   │   │   ├── InsertSingleAsyncBenchmark.cs
    │   │   │   └── InsertSingleWithRelationsAsyncBenchmark.cs
    │   │   ├── InstantiationBenchmark.cs
    │   │   ├── MiscBenchmarks.cs
    │   │   ├── QueryBenchmarks/
    │   │   │   ├── QueryBatchAsyncBenchmark.cs
    │   │   │   ├── QueryBatchWithRelationsAsyncBenchmark.cs
    │   │   │   ├── QuerySingleAsyncBenchmark.cs
    │   │   │   ├── QuerySingleWithParameterAsyncBenchmark.cs
    │   │   │   └── QuerySingleWithRelationsAsyncBenchmark.cs
    │   │   └── UpdateBenchmarks/
    │   │       ├── UpdateBatchAsyncBenchmark.cs
    │   │       └── UpdateSingleAsyncBenchmark.cs
    │   ├── Models/
    │   │   ├── Configurations/
    │   │   │   ├── BenchmarkDb.cs
    │   │   │   └── BenchmarkDbContext.cs
    │   │   ├── Email.cs
    │   │   ├── EmailContent.cs
    │   │   └── Person.cs
    │   ├── Startup.cs
    │   └── Venflow.Benchmarks.csproj
    ├── Venflow.Score/
    │   ├── BenchResult.cs
    │   ├── Orm.cs
    │   ├── Startup.cs
    │   ├── StringExtensions.cs
    │   └── Venflow.Score.csproj
    ├── Venflow.Shared/
    │   ├── SecretsHandler.cs
    │   └── Venflow.Shared.csproj
    ├── Venflow.Tests/
    │   ├── DatabaseTests/
    │   │   └── RelationMapping.cs
    │   ├── DeleteTests/
    │   │   ├── BatchDelete.cs
    │   │   └── SingleDelete.cs
    │   ├── GeneratorTests/
    │   │   └── KeyGenerationTests.cs
    │   ├── InsertTests/
    │   │   ├── BatchInsert.cs
    │   │   └── SingleInsert.cs
    │   ├── JsonTests/
    │   │   ├── KeyConverter.cs
    │   │   ├── NewtonsoftJson.cs
    │   │   └── SystemJson.cs
    │   ├── LogTests/
    │   │   └── LogTests.cs
    │   ├── MiscTests.cs
    │   ├── Models/
    │   │   ├── Blog.cs
    │   │   ├── BlogConfiguration.cs
    │   │   ├── Dummy.cs
    │   │   ├── DummyEnum.cs
    │   │   ├── Email.cs
    │   │   ├── EmailConfiguration.cs
    │   │   ├── EmailContent.cs
    │   │   ├── Person.cs
    │   │   ├── PersonConfiguration.cs
    │   │   ├── PostgreEnum.cs
    │   │   ├── RelationDatabase.cs
    │   │   ├── ReverseEmail.cs
    │   │   ├── ReverseEmailConfiguration.cs
    │   │   ├── ReverseEmailContent.cs
    │   │   ├── ReverseEmailContentConfiguration.cs
    │   │   ├── ReversePerson.cs
    │   │   ├── ReverseRelationDatabase.cs
    │   │   ├── UncommonType.cs
    │   │   ├── User.cs
    │   │   └── UserConfiguration.cs
    │   ├── QueryTests/
    │   │   ├── BatchQuery.cs
    │   │   ├── CustomQuery.cs
    │   │   ├── ExpressionQuery.cs
    │   │   └── SingleQuery.cs
    │   ├── SpecificTypes/
    │   │   ├── CLREnumTests.cs
    │   │   ├── CLRUIntKeyTests.cs
    │   │   ├── CLRUIntTests.cs
    │   │   ├── GuidTests.cs
    │   │   ├── KeyTests.cs
    │   │   └── PostgresEnumTests.cs
    │   ├── TableExtensions.cs
    │   ├── TableTests.cs
    │   ├── TestBase.cs
    │   ├── TransactionTests/
    │   │   └── TransactionTests.cs
    │   ├── UnitTestHandler.cs
    │   ├── UpdateTests/
    │   │   ├── BatchUpdate.cs
    │   │   ├── CustomUpdate.cs
    │   │   └── SingleUpdate.cs
    │   ├── Venflow.Tests.csproj
    │   └── xunit.runner.json
    └── Venflow.Tests.Keys/
        ├── Directory.Build.props
        ├── Key.cs
        ├── Venflow.Tests.Keys.csproj
        └── Venflow.Tests.Keys.xml

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

================================================
FILE: .editorconfig
================================================
# Top-most EditorConfig file
root = true
[*.cs]


#Core editorconfig formatting - indentation

#use soft tabs (spaces) for indentation
indent_style = space

#Formatting - new line options

#place catch statements on a new line
csharp_new_line_before_catch = true
#place else statements on a new line
csharp_new_line_before_else = true
#require finally statements to be on a new line after the closing brace
csharp_new_line_before_finally = true
#require members of object initializers to be on the same line
csharp_new_line_before_members_in_object_initializers =true
#require braces to be on a new line for control_blocks, types, lambdas, object_collection_array_initializers, and methods (also known as "Allman" style)
csharp_new_line_before_open_brace =all

#Formatting - organize using options

#sort System.* using directives alphabetically, and place them before other usings
dotnet_sort_system_directives_first = true

#Formatting - spacing options

#require NO space between a cast and the value
csharp_space_after_cast = false
#require a space before the colon for bases or interfaces in a type declaration
csharp_space_after_colon_in_inheritance_clause = true
#require a space after a keyword in a control flow statement such as a for loop
csharp_space_after_keywords_in_control_flow_statements = true
#require a space before the colon for bases or interfaces in a type declaration
csharp_space_before_colon_in_inheritance_clause = true
#remove space within empty argument list parentheses
csharp_space_between_method_call_empty_parameter_list_parentheses = false
#remove space between method call name and opening parenthesis
csharp_space_between_method_call_name_and_opening_parenthesis = false
#do not place space characters after the opening parenthesis and before the closing parenthesis of a method call
csharp_space_between_method_call_parameter_list_parentheses = false
#remove space within empty parameter list parentheses for a method declaration
csharp_space_between_method_declaration_empty_parameter_list_parentheses = false
#place a space character after the opening parenthesis and before the closing parenthesis of a method declaration parameter list.
csharp_space_between_method_declaration_parameter_list_parentheses = false

#Formatting - wrapping options

#leave code block on single line
csharp_preserve_single_line_blocks = true

#Style - Code block preferences

#prefer curly braces even for one line of code
csharp_prefer_braces = true:suggestion

#Style - expression bodied member options

#prefer block bodies for constructors
csharp_style_expression_bodied_constructors =false:silent
#prefer expression-bodied members for methods
csharp_style_expression_bodied_methods = true:suggestion
#prefer expression-bodied members for properties
csharp_style_expression_bodied_properties = true:suggestion

#Style - expression level options

#prefer out variables to be declared inline in the argument list of a method call when possible
csharp_style_inlined_variable_declaration =true:error
#prefer tuple names to ItemX properties
dotnet_style_explicit_tuple_names = true:suggestion
#prefer the language keyword for member access expressions, instead of the type name, for types that have a keyword to represent them
dotnet_style_predefined_type_for_member_access = true:suggestion

#Style - Expression-level  preferences

#prefer default over default(T)
csharp_prefer_simple_default_expression =true:error
#prefer objects to be initialized using object initializers when possible
dotnet_style_object_initializer = true:suggestion
#prefer inferred tuple element names
dotnet_style_prefer_inferred_tuple_names = true:suggestion

#Style - implicit and explicit types

#prefer var over explicit type in all cases, unless overridden by another code style rule
csharp_style_var_elsewhere =true:error
#prefer var is used to declare variables with built-in system types such as int
csharp_style_var_for_built_in_types =true:error
#prefer var when the type is already mentioned on the right-hand side of a declaration expression
csharp_style_var_when_type_is_apparent =true:error

#Style - language keyword and framework type options

#prefer the language keyword for local variables, method parameters, and class members, instead of the type name, for types that have a keyword to represent them
dotnet_style_predefined_type_for_locals_parameters_members = true:suggestion

#Style - Miscellaneous preferences

#prefer local functions over anonymous functions
csharp_style_pattern_local_over_anonymous_function =true:error

#Style - modifier options

#prefer accessibility modifiers to be declared except for public interface members. This will currently not differ from always and will act as future proofing for if C# adds default interface methods.
dotnet_style_require_accessibility_modifiers = for_non_interface_members:suggestion

#Style - Modifier preferences

#when this rule is set to a list of modifiers, prefer the specified ordering.
csharp_preferred_modifier_order = public,internal,private,protected,async,readonly,static,override,abstract:suggestion

#Style - Pattern matching

#prefer pattern matching instead of is expression with type casts
csharp_style_pattern_matching_over_as_with_null_check =true:error

#Style - qualification options

#prefer fields not to be prefaced with this. or Me. in Visual Basic
dotnet_style_qualification_for_field = false:suggestion
#prefer methods not to be prefaced with this. or Me. in Visual Basic
dotnet_style_qualification_for_method = false:suggestion
#prefer properties not to be prefaced with this. or Me. in Visual Basic
dotnet_style_qualification_for_property = false:suggestion
insert_final_newline=true
csharp_using_directive_placement=outside_namespace:error
csharp_prefer_simple_using_statement=true:error
csharp_style_throw_expression=true:error
csharp_style_prefer_null_check_over_type_check=true:error
csharp_style_prefer_index_operator=true:error
csharp_style_prefer_range_operator=true:error
csharp_style_deconstructed_variable_declaration=true:error
csharp_style_unused_value_assignment_preference=discard_variable:error
csharp_style_unused_value_expression_statement_preference=discard_variable:none
csharp_prefer_static_local_function=true:error
csharp_style_conditional_delegate_call=true:error
csharp_style_prefer_switch_expression=true:error
csharp_style_prefer_pattern_matching=true:error
csharp_style_pattern_matching_over_is_with_cast_check=true:error
csharp_style_prefer_not_pattern=true:error

# IDE0058: Expression value is never used
dotnet_diagnostic.IDE0058.severity = none

[*.{cs,vb}]
end_of_line=lf
dotnet_style_coalesce_expression=true:error
dotnet_style_null_propagation=true:error
dotnet_style_prefer_is_null_check_over_reference_equality_method=true:error
dotnet_style_prefer_auto_properties=true:silent
dotnet_style_object_initializer=true:error
dotnet_style_collection_initializer=true:error
dotnet_style_prefer_simplified_boolean_expressions=true:error
dotnet_style_prefer_conditional_expression_over_assignment=true:silent
dotnet_style_prefer_conditional_expression_over_return=true:silent
dotnet_style_explicit_tuple_names=true:error
dotnet_style_prefer_inferred_tuple_names=true:error
dotnet_style_prefer_inferred_anonymous_type_member_names=true:error
dotnet_style_prefer_compound_assignment=true:error
dotnet_style_readonly_field=true:error
dotnet_style_predefined_type_for_locals_parameters_members=true:error
dotnet_code_quality_unused_parameters=all:error

================================================
FILE: .gitattributes
================================================
###############################################################################
# Set default behavior to automatically normalize line endings.
###############################################################################
* text=auto
*.cs text eol=lf
###############################################################################
# Set default behavior for command prompt diff.
#
# This is need for earlier builds of msysgit that does not have it on by
# default for csharp files.
# Note: This is only used by command line
###############################################################################
#*.cs     diff=csharp

###############################################################################
# Set the merge driver for project and solution files
#
# Merging from the command prompt will add diff markers to the files if there
# are conflicts (Merging from VS is not affected by the settings below, in VS
# the diff markers are never inserted). Diff markers may cause the following
# file extensions to fail to load in VS. An alternative would be to treat
# these files as binary and thus will always conflict and require user
# intervention with every merge. To do so, just uncomment the entries below
###############################################################################
#*.sln       merge=binary
#*.csproj    merge=binary
#*.vbproj    merge=binary
#*.vcxproj   merge=binary
#*.vcproj    merge=binary
#*.dbproj    merge=binary
#*.fsproj    merge=binary
#*.lsproj    merge=binary
#*.wixproj   merge=binary
#*.modelproj merge=binary
#*.sqlproj   merge=binary
#*.wwaproj   merge=binary

###############################################################################
# behavior for image files
#
# image files are treated as binary by default.
###############################################################################
#*.jpg   binary
#*.png   binary
#*.gif   binary

###############################################################################
# diff behavior for common document formats
#
# Convert binary document formats to text before diffing them. This feature
# is only available from the command line. Turn it on by uncommenting the
# entries below.
###############################################################################
#*.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

*.sln filter=gitignore


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

github: TwentyFourMinutes
custom: https://www.paypal.me/24minutes


================================================
FILE: .github/ISSUE_TEMPLATE/---bug-report.md
================================================
---
name: "\U0001F41E Bug report"
about: Create a report about something that is not working.
title: ''
labels: bug
assignees: TwentyFourMinutes

---

<!--

If you believe you have an issue that affects the SECURITY of the project, please do NOT create an issue and instead head over to the [Security tab](https://github.com/TwentyFourMinutes/Venflow/security/policy).

-->

### Describe the bug
A clear and concise description of what the bug is.

### Reproduction
<!--
A minimalistic code snippet which reproduces the issue you are facing. If this issue is more complex and requires a bigger setup, please create a repository which includes the reproduction sample.
-->

### Exceptions (if any)
<!-- 

Include the Exception you got including the StackTrace if possible.

-->

### Further technical details
- .NET/.NET Core version:
- Venflow version:


================================================
FILE: .github/ISSUE_TEMPLATE/---feature request.md
================================================
---
name: 💡 Feature Request
about: Suggest an idea for this project.
title: ''
labels: enhancement
assignees: TwentyFourMinutes

---

### Is your feature request related to a problem, if so please describe it.

<!--

A clear and concise description of what the problem is.

-->

### Describe the solution you'd like

<!--

A clear and concise description of the solution you think of. Include any alternatives you've considered.

-->

### Additional context (if any)

<!--

Add any other context or screenshots about the feature request here.

-->


================================================
FILE: .github/ISSUE_TEMPLATE/config.yml
================================================
blank_issues_enabled: true
contact_links:
  - name: Discussions
    url: https://github.com/TwentyFourMinutes/Venflow/discussions/new
    about: Is your issue perhaps more of a discussion? Please open topics for discussion using the new GitHub Discussions feature.


================================================
FILE: .github/dependabot.yml
================================================
version: 2
updates:
  - package-ecosystem: "github-actions"
    directory: "/"
    schedule:
      interval: "daily"
    assignees:
      - "TwentyFourMinutes"
  
  - package-ecosystem: "nuget"
    directory: "/src/Venflow/Venflow/"
    schedule:
      interval: "daily"
    assignees:
      - "TwentyFourMinutes"


================================================
FILE: .github/workflows/benchmarks.yml
================================================
name: Benchmarks

on:
  release:
    types: [created]

  workflow_dispatch:
    inputs:
      logLevel:
        description: 'Log level'
        required: true
        default: 'warning'

jobs:
  build:

    runs-on: ubuntu-latest
    env:
        VENFLOW_BENCHMARKS_CONNECTION_STRING: 'Server=127.0.0.1;Port=5432;Database=venflow_benchmarks;UserId=venflow_benchmarks;Password=venflow_benchmarks;'

    steps:
    - uses: actions/checkout@v3

    - name: Setup .NET 6.0
      uses: actions/setup-dotnet@v2
      with:
        dotnet-version: 6.0.100-rc.1.21463.6

    - name: Install dependencies
      run: dotnet restore

    - name: Build
      run: dotnet build --configuration Release --no-restore

    - name: Configure PostgreSQL
      uses: harmon758/postgresql-action@v1
      with:
        postgresql version: '13.1'
        postgresql db: 'venflow_benchmarks'
        postgresql user: 'venflow_benchmarks'
        postgresql password: 'venflow_benchmarks'

    - name: Clear old benchmarks
      working-directory: ./benchmarks
      run: rm -rf *

    - name: Run Query Benchmarks
      working-directory: ./test/Venflow.Benchmarks
      run: dotnet run -c Release -f net6.0 -- -f "*query*"

    - name: Run Insert Benchmarks
      working-directory: ./test/Venflow.Benchmarks
      run: dotnet run -c Release -f net6.0 -- -f "*insert*"

    - name: Run Update Benchmarks
      working-directory: ./test/Venflow.Benchmarks
      run: dotnet run -c Release -f net6.0 -- -f "*update*"

    - name: Run Delete Benchmarks
      working-directory: ./test/Venflow.Benchmarks
      run: dotnet run -c Release -f net6.0 -- -f "*delete*"

    - name: Run Instantiation Benchmarks
      working-directory: ./test/Venflow.Benchmarks
      run: dotnet run -c Release -f net6.0 -- -f "*instantiation*"

    - name: Run Score Calculator
      working-directory: ./test/Venflow.Score
      run: dotnet run -c Release -- "../Venflow.Benchmarks/BenchmarkDotNet.Artifacts/results" "../../../benchmarks" "../../../README.md"

    - name: Commit Benchmark changes
      uses: stefanzweifel/git-auto-commit-action@v4.14.0
      with:
        commit_message: Updated Benchmarks
        branch: dev
        push_options: '--force'


================================================
FILE: .github/workflows/build.yml
================================================
name: .NET Core

on:
  push:
    branches: [ dev ]
  pull_request:
    branches: [ dev ]

jobs:
  build:

    runs-on: ubuntu-latest
    env:
        VENFLOW_TESTS_CONNECTION_STRING: 'Server=127.0.0.1;Port=5432;Database=venflow_tests;UserId=venflow_tests;Password=venflow_tests;Timeout=25;'

    steps:
    - uses: actions/checkout@v3
      with:
        persist-credentials: false

    - name: Setup .NET 6.0
      uses: actions/setup-dotnet@v2
      with:
        dotnet-version: 6.0.100-rc.1.21463.6

    - name: Setup .NET 5.0
      uses: actions/setup-dotnet@v2
      with:
        dotnet-version: 5.0.400

    - name: Setup .NET 3.1
      uses: actions/setup-dotnet@v2
      with:
        dotnet-version: 3.1.118

    - name: Install dependencies
      run: dotnet restore

    - name: Build
      run: dotnet build --configuration Release --no-restore

    - name: Configure PostgreSQL
      uses: harmon758/postgresql-action@v1
      with:
        postgresql version: '13.4'
        postgresql db: 'venflow_tests'
        postgresql user: 'venflow_tests'
        postgresql password: 'venflow_tests'

    - name: Execute Tests (.Net 6)
      working-directory: ./test/Venflow.Tests
      run: 'dotnet test -c Release --no-restore --no-build --verbosity normal -f net6.0 /p:CollectCoverage=true /p:CoverletOutputFormat=lcov /p:CoverletOutput=coverage-reports/ /p:Exclude="[Venflow.Shared]*"'

    - name: Execute Tests (.Net 5)
      working-directory: ./test/Venflow.Tests
      run: dotnet test -c Release --no-restore --no-build --verbosity normal -f net5.0

    - name: Execute Tests (.Net Core 3.1)
      working-directory: ./test/Venflow.Tests
      run: dotnet test -c Release --no-restore --no-build --verbosity normal -f netcoreapp3.1

    - name: Upload coverage report to coveralls.io
      uses: coverallsapp/github-action@master
      if: ${{ github.event_name == 'push' }}
      with:
        github-token: ${{ secrets.GITHUB_TOKEN }}
        path-to-lcov: ./test/Venflow.Tests/coverage-reports/coverage.net6.0.info

    - name: Build Documentation
      uses: nikeee/docfx-action@v1.0.0
      if: ${{ github.event_name == 'push' }}
      with:
        args: /github/workspace/docs/docfx/docfx.json --property TargetFramework=net5.0
        
    - name: Deploy Documentation to Github Pages
      uses: JamesIves/github-pages-deploy-action@v4.2.5
      if: ${{ github.event_name == 'push' }}
      with:
        token: ${{ secrets.GITHUB_TOKEN }}
        branch: dev
        folder: docs
        target-folder: docs
        commit-message: "Updated docs"
        clean: true


================================================
FILE: .github/workflows/cla.yml
================================================
name: "CLA Assistant"
on:
  issue_comment:
    types: [created]
  pull_request_target:
    types: [opened,closed,synchronize]

jobs:
  CLAssistant:
    runs-on: ubuntu-latest
    steps:
      - name: "CLA Assistant"
        if: (github.event.comment.body == 'recheck' || github.event.comment.body == 'I have read the CLA Document and I hereby sign the CLA') || github.event_name == 'pull_request_target'
        uses: cla-assistant/github-action@v2.1.3-beta
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          PERSONAL_ACCESS_TOKEN : ${{ secrets.PERSONAL_ACCESS_TOKEN }}
        with:
          path-to-signatures: 'signatures/version1/cla.json'
          path-to-document: 'https://github.com/TwentyFourMinutes/Venflow/blob/dev/CLA.md'
          branch: 'dev'
          allowlist: TwentyFourMinutes,bot*


================================================
FILE: .github/workflows/codeql-analysis.yml
================================================
# For most projects, this workflow file will not need changing; you simply need
# to commit it to your repository.
#
# You may wish to alter this file to override the set of languages analyzed,
# or to provide custom queries or build logic.
#
# ******** NOTE ********
# We have attempted to detect the languages in your repository. Please check
# the `language` matrix defined below to confirm you have the correct set of
# supported CodeQL languages.
#
name: "CodeQL"

on:
  push:
    branches: [ dev ]
  pull_request:
    # The branches below must be a subset of the branches above
    branches: [ dev ]
  schedule:
    - cron: '40 18 * * 4'

jobs:
  analyze:
    name: Analyze
    runs-on: ubuntu-latest

    strategy:
      fail-fast: false
      matrix:
        language: [ 'csharp' ]
        # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python' ]
        # Learn more:
        # https://docs.github.com/en/free-pro-team@latest/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#changing-the-languages-that-are-analyzed

    steps:
    - name: Checkout repository
      uses: actions/checkout@v3

    - name: Setup .NET 6.0
      uses: actions/setup-dotnet@v2
      with:
        dotnet-version: 6.0.100-rc.1.21463.6

    # Initializes the CodeQL tools for scanning.
    - name: Initialize CodeQL
      uses: github/codeql-action/init@v1
      with:
        languages: ${{ matrix.language }}
        # If you wish to specify custom queries, you can do so here or in a config file.
        # By default, queries listed here will override any specified in a config file.
        # Prefix the list here with "+" to use these queries and those in the config file.
        # queries: ./path/to/local/query, your-org/your-repo/queries@main

    # Autobuild attempts to build any compiled languages  (C/C++, C#, or Java).
    # If this step fails, then you should remove it and run the build manually (see below)
    - name: Manual build
      working-directory: ./
      run:  | 
        dotnet build -c Release

    - name: Perform CodeQL Analysis
      uses: github/codeql-action/analyze@v1


================================================
FILE: .github/workflows/devskim-analysis.yml
================================================
name: DevSkim

on:
  push:
    branches: [ dev ]
  pull_request:
    branches: [ dev ]
  schedule:
    - cron: '20 22 * * 5'

jobs:
  lint:
    name: DevSkim
    runs-on: ubuntu-20.04
    permissions:
      actions: read
      contents: read
      security-events: write
    steps:
      - name: Checkout code
        uses: actions/checkout@v3

      - name: Run DevSkim scanner
        uses: microsoft/DevSkim-Action@v1
        
      - name: Upload DevSkim scan results to GitHub Security tab
        uses: github/codeql-action/upload-sarif@v1
        with:
          sarif_file: devskim-results.sarif


================================================
FILE: .github/workflows/publish.yml
================================================
name: Publish to NuGet
on:
  push:
    branches:
      - dev
jobs:
  publish:
    name: build, pack & publish
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3

      - name: Setup .NET 6.0
        uses: actions/setup-dotnet@v2
        with:
          dotnet-version: 6.0.100-rc.1.21463.6

      - name: build Venflow.Generators
        working-directory: ./src/Venflow.Generators
        run: dotnet build -c Release

      - name: Publish Venflow.Keys on version change
        id: publish_venflow_keys_nuget
        uses: TwentyFourMinutes/PublishNuget@dev
        with:
          name: Venflow.Keys
          project_file_path: src/Venflow.Keys/Venflow.Keys.csproj
          version_file_path: Directory.Build.props
          nuget_key: ${{secrets.NUGET_API_KEY}}
          include_symbols: true

      - name: Publish Venflow on version change
        id: publish_venflow_nuget
        uses: TwentyFourMinutes/PublishNuget@dev
        with:
          name: Venflow
          project_file_path: src/Venflow/Venflow.csproj
          version_file_path: Directory.Build.props
          nuget_key: ${{secrets.NUGET_API_KEY}}
          include_symbols: true

      - name: Publish Venflow.Extensions.Logging on version change
        id: publish_venflow_extensions_logging_nuget
        uses: TwentyFourMinutes/PublishNuget@dev
        with:
          name: Venflow.Extensions.Logging
          project_file_path: src/Venflow.Extensions.Logging/Venflow.Extensions.Logging.csproj
          version_file_path: Directory.Build.props
          nuget_key: ${{secrets.NUGET_API_KEY}}
          include_symbols: true

      - name: Publish Venflow.AspNetCore on version change
        id: publish_venflow_aspnetcore_nuget
        uses: TwentyFourMinutes/PublishNuget@dev
        with:
          name: Venflow.AspNetCore
          project_file_path: src/Venflow.AspNetCore/Venflow.AspNetCore.csproj
          version_file_path: Directory.Build.props
          nuget_key: ${{secrets.NUGET_API_KEY}}
          include_symbols: true

      - name: Publish Venflow.NewtonsoftJson on version change
        id: publish_venflow_newtonsoftjson_nuget
        uses: TwentyFourMinutes/PublishNuget@dev
        with:
          name: Venflow.NewtonsoftJson
          project_file_path: src/Venflow.NewtonsoftJson/Venflow.NewtonsoftJson.csproj
          version_file_path: Directory.Build.props
          nuget_key: ${{secrets.NUGET_API_KEY}}
          include_symbols: true


================================================
FILE: .github/workflows/securitycodescan-analysis.yml
================================================
name: SecurityCodeScan

on:
  push:
    branches: [ dev ]
  pull_request:
    branches: [ dev ]
  schedule:
    - cron: '22 3 * * 0'

jobs:
  SCS:
    runs-on: windows-latest
    steps:
      - uses: actions/checkout@v3
      - uses: nuget/setup-nuget@v1.0.5
      - uses: microsoft/setup-msbuild@v1.0.2
      
      - name: Setup .NET 6.0
        uses: actions/setup-dotnet@v2
        with:
          dotnet-version: 6.0.100-rc.1.21463.6
      
      - name: Set up projects for analysis
        uses: security-code-scan/security-code-scan-add-action@main
        
      - name: Restore dependencies	
        run: dotnet restore

      - name: Build
        run: dotnet build --no-restore

      - name: Convert sarif for uploading to GitHub
        uses: security-code-scan/security-code-scan-results-action@main

      - name: Upload sarif
        uses: github/codeql-action/upload-sarif@v1


================================================
FILE: .github/workflows/shiftleft-analysis.yml
================================================
name: SL Scan

on:
  push:
    branches: [ dev ]
  pull_request:
    branches: [ dev ]
  schedule:
    - cron: '39 4 * * 6'

jobs:
  Scan-Build:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v3
    
    - name: Setup .NET 6.0
      uses: actions/setup-dotnet@v2
      with:
        dotnet-version: 6.0.100-rc.1.21463.6
        
    - name: Manual build
      working-directory: ./
      run:  | 
        dotnet build -c Release

    - name: Perform Scan
      uses: ShiftLeftSecurity/scan-action@master
      env:
        WORKSPACE: ""
        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        SCAN_AUTO_BUILD: true
      with:
        output: reports
        # Scan auto-detects the languages in your project. To override uncomment the below variable and set the type
        # type: credscan,java
        # type: python

    - name: Upload report
      uses: github/codeql-action/upload-sarif@v1
      with:
        sarif_file: reports


================================================
FILE: .gitignore
================================================
## Ignore Visual Studio temporary files, build results, and
## files generated by popular Visual Studio add-ons.
##
## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore

# Custom
build/

.idea/
Venflow.Compatible/
Venflow.Execution/

# User-specific files
*.rsuser
*.suo
*.user
*.userosscache
*.sln.docstates

# User-specific files (MonoDevelop/Xamarin Studio)
*.userprefs

# Mono auto generated files
mono_crash.*

# Build results
[Dd]ebug/
[Dd]ebugPublic/
[Rr]elease/
[Rr]eleases/
x64/
x86/
[Aa][Rr][Mm]/
[Aa][Rr][Mm]64/
bld/
[Bb]in/
[Oo]bj/
[Ll]og/
[Ll]ogs/

# Visual Studio 2015/2017 cache/options directory
.vs/
# Uncomment if you have tasks that create the project's static files in wwwroot
#wwwroot/

# Visual Studio 2017 auto generated files
Generated\ Files/

# MSTest test Results
[Tt]est[Rr]esult*/
[Bb]uild[Ll]og.*

# NUnit
*.VisualState.xml
TestResult.xml
nunit-*.xml

# Build Results of an ATL Project
[Dd]ebugPS/
[Rr]eleasePS/
dlldata.c

# Benchmark Results
BenchmarkDotNet.Artifacts/

# .NET Core
project.lock.json
project.fragment.lock.json
artifacts/

# StyleCop
StyleCopReport.xml

# Files built by Visual Studio
*_i.c
*_p.c
*_h.h
*.ilk
*.meta
*.obj
*.iobj
*.pch
*.pdb
*.ipdb
*.pgc
*.pgd
*.rsp
*.sbr
*.tlb
*.tli
*.tlh
*.tmp
*.tmp_proj
*_wpftmp.csproj
*.log
*.vspscc
*.vssscc
.builds
*.pidb
*.svclog
*.scc

# Chutzpah Test files
_Chutzpah*

# Visual C++ cache files
ipch/
*.aps
*.ncb
*.opendb
*.opensdf
*.sdf
*.cachefile
*.VC.db
*.VC.VC.opendb

# Visual Studio profiler
*.psess
*.vsp
*.vspx
*.sap

# Visual Studio Trace Files
*.e2e

# TFS 2012 Local Workspace
$tf/

# Guidance Automation Toolkit
*.gpState

# ReSharper is a .NET coding add-in
_ReSharper*/
*.[Rr]e[Ss]harper
*.DotSettings.user

# TeamCity is a build add-in
_TeamCity*

# DotCover is a Code Coverage Tool
*.dotCover

# AxoCover is a Code Coverage Tool
.axoCover/*
!.axoCover/settings.json

# Visual Studio code coverage results
*.coverage
*.coveragexml

# NCrunch
_NCrunch_*
.*crunch*.local.xml
nCrunchTemp_*

# MightyMoose
*.mm.*
AutoTest.Net/

# Web workbench (sass)
.sass-cache/

# Installshield output folder
[Ee]xpress/

# DocProject is a documentation generator add-in
DocProject/buildhelp/
DocProject/Help/*.HxT
DocProject/Help/*.HxC
DocProject/Help/*.hhc
DocProject/Help/*.hhk
DocProject/Help/*.hhp
DocProject/Help/Html2
DocProject/Help/html

# Click-Once directory
publish/

# Publish Web Output
*.[Pp]ublish.xml
*.azurePubxml
# Note: Comment the next line if you want to checkin your web deploy settings,
# but database connection strings (with potential passwords) will be unencrypted
*.pubxml
*.publishproj

# Microsoft Azure Web App publish settings. Comment the next line if you want to
# checkin your Azure Web App publish settings, but sensitive information contained
# in these scripts will be unencrypted
PublishScripts/

# NuGet Packages
*.nupkg
# NuGet Symbol Packages
*.snupkg
# The packages folder can be ignored because of Package Restore
**/[Pp]ackages/*
# except build/, which is used as an MSBuild target.
!**/[Pp]ackages/build/
# Uncomment if necessary however generally it will be regenerated when needed
#!**/[Pp]ackages/repositories.config
# NuGet v3's project.json files produces more ignorable files
*.nuget.props
*.nuget.targets

# Microsoft Azure Build Output
csx/
*.build.csdef

# Microsoft Azure Emulator
ecf/
rcf/

# Windows Store app package directories and files
AppPackages/
BundleArtifacts/
Package.StoreAssociation.xml
_pkginfo.txt
*.appx
*.appxbundle
*.appxupload

# Visual Studio cache files
# files ending in .cache can be ignored
*.[Cc]ache
# but keep track of directories ending in .cache
!?*.[Cc]ache/

# Others
ClientBin/
~$*
*~
*.dbmdl
*.dbproj.schemaview
*.jfm
*.pfx
*.publishsettings
orleans.codegen.cs

# Including strong name files can present a security risk
# (https://github.com/github/gitignore/pull/2483#issue-259490424)
#*.snk

# Since there are multiple workflows, uncomment next line to ignore bower_components
# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
#bower_components/

# RIA/Silverlight projects
Generated_Code/

# Backup & report files from converting an old project file
# to a newer Visual Studio version. Backup files are not needed,
# because we have git ;-)
_UpgradeReport_Files/
Backup*/
UpgradeLog*.XML
UpgradeLog*.htm
ServiceFabricBackup/
*.rptproj.bak

# SQL Server files
*.mdf
*.ldf
*.ndf

# Business Intelligence projects
*.rdl.data
*.bim.layout
*.bim_*.settings
*.rptproj.rsuser
*- [Bb]ackup.rdl
*- [Bb]ackup ([0-9]).rdl
*- [Bb]ackup ([0-9][0-9]).rdl

# Microsoft Fakes
FakesAssemblies/

# GhostDoc plugin setting file
*.GhostDoc.xml

# Node.js Tools for Visual Studio
.ntvs_analysis.dat
node_modules/

# Visual Studio 6 build log
*.plg

# Visual Studio 6 workspace options file
*.opt

# Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
*.vbw

# Visual Studio LightSwitch build output
**/*.HTMLClient/GeneratedArtifacts
**/*.DesktopClient/GeneratedArtifacts
**/*.DesktopClient/ModelManifest.xml
**/*.Server/GeneratedArtifacts
**/*.Server/ModelManifest.xml
_Pvt_Extensions

# Paket dependency manager
.paket/paket.exe
paket-files/

# FAKE - F# Make
.fake/

# CodeRush personal settings
.cr/personal

# Python Tools for Visual Studio (PTVS)
__pycache__/
*.pyc

# Cake - Uncomment if you are using it
# tools/**
# !tools/packages.config

# Tabs Studio
*.tss

# Telerik's JustMock configuration file
*.jmconfig

# BizTalk build output
*.btp.cs
*.btm.cs
*.odx.cs
*.xsd.cs

# OpenCover UI analysis results
OpenCover/

# Azure Stream Analytics local run output
ASALocalRun/

# MSBuild Binary and Structured Log
*.binlog

# NVidia Nsight GPU debugger configuration file
*.nvuser

# MFractors (Xamarin productivity tool) working folder
.mfractor/

# Local History for Visual Studio
.localhistory/

# BeatPulse healthcheck temp database
healthchecksdb

# Backup folder for Package Reference Convert tool in Visual Studio 2017
MigrationBackup/

# Ionide (cross platform F# VS Code tools) working folder
.ionide/

src/Venflow/Venflow.ExecutionTests/

*.lnk


================================================
FILE: CLA.md
================================================
# Individual Contributor License Agreement

Adapted from http://www.apache.org/licenses/icla.pdf © The Apache Software Foundation

Thank you for your interest in Venflow (the "Project"). In order to clarify the intellectual property license granted with Contributions from any person or entity, the Project must have a Contributor License Agreement ("CLA") on file that has been signed by each Contributor, indicating agreement to the license terms below. This license is for your protection as a Contributor as well as the protection of the project and its users; it does not change your rights to use your own Contributions for any other purpose.

You accept and agree to the following terms and conditions for Your present and future Contributions submitted to the project. In return, the project shall not use Your Contributions in a way that is contrary to the public benefit or inconsistent with its bylaws in effect at the time of the Contribution. Except for the license granted herein to the project and recipients of software distributed by the project, You reserve all right, title, and interest in and to Your Contributions.

1. Definitions.

   **"You" (or "Your")**

   "You" (or "Your") shall mean the copyright owner or legal entity authorized by the copyright owner that is making this Agreement with the project. For legal entities, the entity making a Contribution and all other entities that control, are controlled by, or are under common control with that entity are considered to be a single Contributor. 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.

   **"Contribution"**

   "Contribution" shall mean any original work of authorship, including any modifications or additions to an existing work, that is intentionally submitted by You to the project for inclusion in, or documentation of, any of the products owned or managed by the project (the "Work"). For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the project 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 project for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by You as "Not a Contribution."

2. Grant of Copyright License. Subject to the terms and conditions of this Agreement, You hereby grant to the project and to recipients of software distributed by the project 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 Your Contributions and such derivative works.

3. Grant of Patent License. Subject to the terms and conditions of this Agreement, You hereby grant to the project and to recipients of software distributed by the project 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 You that are necessarily infringed by Your Contribution(s) alone or by combination of Your Contribution(s) with the Work to which such Contribution(s) was submitted. If any entity institutes patent litigation against You or any other entity (including a cross-claim or counterclaim in a lawsuit) alleging that your Contribution, or the Work to which you have contributed, constitutes direct or contributory patent infringement, then any patent licenses granted to that entity under this Agreement for that Contribution or Work shall terminate as of the date such litigation is filed.

4. You represent that you are legally entitled to grant the above license. If your employer(s) has rights to intellectual property that you create that includes your Contributions, you represent that you have received permission to make Contributions on behalf of that employer, that your employer has waived such rights for your Contributions to the project, or that your employer has executed a separate Corporate CLA with the project.

5. You represent that each of Your Contributions is Your original creation (see section 7 for submissions on behalf of others). You represent that Your Contribution submissions include complete details of any third-party license or other restriction (including, but not limited to, related patents and trademarks) of which you are personally aware and which are associated with any part of Your Contributions.

6. You are not expected to provide support for Your Contributions, except to the extent You desire to provide support. You may provide support for free, for a fee, or not at all. Unless required by applicable law or agreed to in writing, You provide Your 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.

7. Should You wish to submit work that is not Your original creation, You may submit it to the project separately from any Contribution, identifying the complete details of its source and of any license or other restriction (including, but not limited to, related patents, trademarks, and license agreements) of which you are personally aware, and conspicuously marking the work as "Submitted on behalf of a third-party: [named here]".

8. You agree to notify the project of any facts or circumstances of which you become aware that would make these representations inaccurate in any respect.


================================================
FILE: CODE_OF_CONDUCT.md
================================================
# Contributor Covenant Code of Conduct

## Our Pledge

In the interest of fostering an open and welcoming environment, we as
contributors and maintainers pledge to making participation in our project and
our community a harassment-free experience for everyone, regardless of age, body
size, disability, ethnicity, sex characteristics, gender identity and expression,
level of experience, education, socio-economic status, nationality, personal
appearance, race, religion, or sexual identity and orientation.

## Our Standards

Examples of behavior that contributes to creating a positive environment
include:

* Using welcoming and inclusive language
* Being respectful of differing viewpoints and experiences
* Gracefully accepting constructive criticism
* Focusing on what is best for the community
* Showing empathy towards other community members

Examples of unacceptable behavior by participants include:

* The use of sexualized language or imagery and unwelcome sexual attention or
 advances
* Trolling, insulting/derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or electronic
 address, without explicit permission
* Other conduct which could reasonably be considered inappropriate in a
 professional setting

## Our Responsibilities

Project maintainers are responsible for clarifying the standards of acceptable
behavior and are expected to take appropriate and fair corrective action in
response to any instances of unacceptable behavior.

Project maintainers have the right and responsibility to remove, edit, or
reject comments, commits, code, wiki edits, issues, and other contributions
that are not aligned to this Code of Conduct, or to ban temporarily or
permanently any contributor for other behaviors that they deem inappropriate,
threatening, offensive, or harmful.

## Scope

This Code of Conduct applies both within project spaces and in public spaces
when an individual is representing the project or its community. Examples of
representing a project or community include using an official project e-mail
address, posting via an official social media account, or acting as an appointed
representative at an online or offline event. Representation of a project may be
further defined and clarified by project maintainers.

## Enforcement

Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported by contacting the project team at office@twenty-four.dev. All
complaints will be reviewed and investigated and will result in a response that
is deemed necessary and appropriate to the circumstances. The project team is
obligated to maintain confidentiality with regard to the reporter of an incident.
Further details of specific enforcement policies may be posted separately.

Project maintainers who do not follow or enforce the Code of Conduct in good
faith may face temporary or permanent repercussions as determined by other
members of the project's leadership.

## Attribution

This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html

[homepage]: https://www.contributor-covenant.org

For answers to common questions about this code of conduct, see
https://www.contributor-covenant.org/faq


================================================
FILE: CONTRIBUTING.md
================================================
# Contributing to Venflow
First and foremost, I want to say, thank you! Maintaining this project is not an easy task and any help, no matter the scope, is appreciated. However, to keep things well organized there are a few steps you should go through before creating an issue or a pull-request.
No matter how you are planning on contributing to Venflow, always ensure that your behaviour and the ones of others align with the [Code of Conduct](https://github.com/TwentyFourMinutes/Venflow/blob/dev/CODE_OF_CONDUCT.md).
## Creating an issue
1. You should make sure, that the issue you are facing is or was not discussed in an existent issue or discussion.
2. Make sure, that you include _all_ the necessary information to reproduce this issue.
## Creating a pull-requests
1.  You should make sure that the contribution you want to make is not already discussed in an existent pull request, issue, or discussion.
2. If you would like to contribute to Venflow, first identify the scale of what you would like to contribute. If it is small (grammar/spelling or a bug fix) feel free to start working on a fix. However, if you are submitting a feature or substantial code contribution, please discuss it beforehand with other contributors if your pull request is appropriate.

3. You should read the *Writing Code* section and make sure your code contributions stick as tightly to it as possible.
## Writing Code
**Do**
- Write code comments and documentation in English.
- Primarily write _fast_ code, that is easy to read and understand, even though it may require you to write more. If it is not possible to make it easily readable and would sacrifice performance, be sure to add comments to your code explaining what is happening.
- Stick to the Coding Conventions mentioned below and the ones [provided by Microsoft](https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/inside-a-program/coding-conventions).
- Stick to the Naming Conventions provided by Microsoft.
  - [Capitalization Conventions](https://docs.microsoft.com/en-us/dotnet/standard/design-guidelines/capitalization-conventions)
  - [General Naming Conventions](https://docs.microsoft.com/en-us/dotnet/standard/design-guidelines/general-naming-conventions)
  - [Names of Classes, Structs, and Interfaces](https://docs.microsoft.com/en-us/dotnet/standard/design-guidelines/names-of-classes-structs-and-interfaces)
  - [Names of Type Members](https://docs.microsoft.com/en-us/dotnet/standard/design-guidelines/names-of-type-members)
  - [Write XML Documentation](https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/xmldoc/) for all publicly accessible types and members. 
  - [Naming Parameters](https://docs.microsoft.com/en-us/dotnet/standard/design-guidelines/naming-parameters)
- Write Unit Tests if the new code will not be covered by existing ones.
- Cache Reflection results in the same method of class if they are going to be used frequently.
- Question existing Coding and Naming Conventions and break them, if reasonable.

**Do not**
- Push code which reformats the whole project.
- Push code which contains breaking changes, without them being approved.
- Write unconcise and vage commit messages.
## Coding and Naming Conventions
Our conventions differ from the ones provided by Microsoft in some ways, here you will find the ones which actually differ.

**I. Types**

**II. Fields**
- a. All field names should be prefixed with “_”.

**III. Properties**

**VI. Methods**

**V. Misc**
- a. Avoid the use of Collections which do not have an indexer, if one with an indexer could be used instead.
- b. Avoid the use of foreach loops in places where a for loop could be used instead.


================================================
FILE: Directory.Build.props
================================================
<Project>
  <PropertyGroup>
    <LangVersion>preview</LangVersion>
    <Nullable>enable</Nullable>
    <AnalysisLevel>preview</AnalysisLevel>
    <EnforceCodeStyleInBuild>true</EnforceCodeStyleInBuild>
    <SuppressNETCoreSdkPreviewMessage>true</SuppressNETCoreSdkPreviewMessage>
    <TreatWarningsAsErrors>true</TreatWarningsAsErrors>
    <NoWarn>NU5104</NoWarn>

    <Title>Venflow</Title>
    <Authors>Twenty</Authors>
    <Company>Twenty</Company>
    <Version>1.2.0</Version>
    <Language>en</Language>
    <NeutralLanguage>en</NeutralLanguage>
    <PackageIcon>icon.png</PackageIcon>
    <PackageLicenseFile>LICENSE</PackageLicenseFile>
    <PackageRequireLicenseAcceptance>true</PackageRequireLicenseAcceptance>
    <RepositoryUrl>https://github.com/TwentyFourMinutes/Venflow</RepositoryUrl>
    <RepositoryType>git</RepositoryType>
    <PackageTags>Venflow ORM ORM-Framework O/RM Data Postgres SQL PostgreSQL</PackageTags>
    <Copyright>Copyright ©2021 Twenty</Copyright>

    <DocumentationFile>$(MSBuildProjectDirectory)/$(MSBuildProjectName).xml</DocumentationFile>
    <PackageOutputPath>$(MSBuildThisFileDirectory)build</PackageOutputPath>

    <AssemblyOriginatorKeyFile>$(MSBuildThisFileDirectory)/Venflow.snk</AssemblyOriginatorKeyFile>
    <SignAssembly>true</SignAssembly>

    <IncludeSymbols>true</IncludeSymbols>
    <SymbolPackageFormat>snupkg</SymbolPackageFormat>
    <Deterministic>true</Deterministic>

    <PublishRepositoryUrl>true</PublishRepositoryUrl>
    <EmbedUntrackedSources>true</EmbedUntrackedSources>
    <AddSyntheticProjectReferencesForSolutionDependencies>false</AddSyntheticProjectReferencesForSolutionDependencies>
  </PropertyGroup>

  <ItemGroup>
    <None Include="$(MSBuildThisFileDirectory)images/icon.png" Pack="true" PackagePath="" />
    <None Include="$(MSBuildThisFileDirectory)LICENSE" Pack="true" PackagePath="" />
  </ItemGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.SourceLink.GitHub" Version="1.1.0-beta-20204-02">
      <PrivateAssets>all</PrivateAssets>
    </PackageReference>
  </ItemGroup>

</Project>

================================================
FILE: LICENSE
================================================
                                 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: README.md
================================================
<p align="center">
 <img width="100px" src="images/venflow.png" align="center" alt="GitHub Readme Stats" />
 <h1 align="center">Venflow</h1>
 <p align="center">A brand new, fast, and lightweight ORM. | <a href="https://twentyfourminutes.github.io/Venflow/">Documentation</a></p>
</p>
<p align="center">
<a href="https://www.nuget.org/packages/Venflow"><img alt="Nuget" src="https://img.shields.io/nuget/v/Venflow"></a> <a href="https://www.nuget.org/packages/Venflow"><img alt="Nuget" src="https://img.shields.io/nuget/dt/Venflow"></a> <a href="https://github.com/TwentyFourMinutes/Venflow/issues"><img alt="GitHub issues" src="https://img.shields.io/github/issues-raw/TwentyFourMinutes/Venflow"></a> <a href='https://coveralls.io/github/TwentyFourMinutes/Venflow?branch=dev'><img src='https://coveralls.io/repos/github/TwentyFourMinutes/Venflow/badge.svg?branch=dev' alt='Coverage Status' /></a> <a href="https://github.com/TwentyFourMinutes/Venflow/blob/master/LICENSE"><img alt="GitHub" src="https://img.shields.io/github/license/TwentyFourMinutes/DulcisX"></a> <a href="https://discordapp.com/invite/EYKxkce"><img alt="Discord" src="https://discordapp.com/api/guilds/275377268728135680/widget.png"></a>
</p>
<p align="center">
 <b>🚧 Venflow is currently undergoing a full rewrite, check the progress <a href="https://github.com/TwentyFourMinutes/Venflow/projects/1">here</a>. 🚧</b>
</p>

## About

Venflow is a brand new ORM, written from the ground up to try and provide an alternative to EF-Core and many other ORMs. It allows you to define Models and their relations with each other. Additionally it maps all queries on its own while still maintaining great performance.

Lets face it, EF-Core is awesome, but it can be slow, really slow. However this library tries to overcome that by providing similar features while maintaining great performance. Venflow comes with a very similar UX to Dapper and EF-Core, in order to keep the learning curve as low as possible. 

#### Features

- Simple change-tracking for update operations
- Autogenerated Inserts
- Autogenerated Deletes
- Autogenerated Query Materializer, Join Generator
- SQL Injection safe string Interpolated SQL
- Refactorable and maintainable SQL 


### Collaboration

The simplest way to do so, is by giving the project a :star: and sharing the project to others. How you can help other than that? This can be done in numerous ways, over on the issue section, such as:

- Creating feature requests
- Creating pull requests
- Reporting bugs

For more information take a look at our [contribution guideline](https://github.com/TwentyFourMinutes/Venflow/blob/dev/CONTRIBUTING.md).

## Installation

Venflow can currently be downloaded on [nuget.org](https://www.nuget.org/packages/Venflow).

Also you can install it via the **P**ackage **M**anager **C**onsole:

```
Install-Package Venflow
```

## Comparison

Benchmarking ORM's isn't an easy task, since there are a bunch of different factors which can alter the result in one way or another. I do not present any beautiful graphs here simply because they would get too complex and it would require too many graphs to remain practical. This is also the reason why I tried to come up with a composite number based on benchmark results. If you still want check all the individual benchmarks, which you definitely should, the source code can be found [here](./test/Venflow.Benchmarks) and the results as `.csv` and `.md` are over [here](./benchmarks).

Lets just directly hop into the composite numbers of each tested ORM.
<!--Benchmark Start-->

| ORM Name | Composite Score\* | Mean Score\* | Allocation Score\* |
| :- | :-: | :-: | :-: |
| #1 [Dapper](https://github.com/StackExchange/Dapper) | 2,822 | 2,707 | 0,115 |
| #2 [Venflow](https://github.com/TwentyFourMinutes/Venflow) | 4,658 | 3,786 | 0,872 |
| #3 [RepoDb](https://github.com/mikependon/RepoDb) | 51,532 | 49,333 | 2,199 |
| #4 [EFCore](https://github.com/dotnet/efcore) | 113,686 | 94,394 | 19,292 |
<!--Benchmark End-->
\* Lower is considered to be better </br>
\*\* Do have missing benchmark entries for specific benchmark groups and therefor might have either better or worse scores.

Now how do I calculate this _magic number_? The formula is as following: 
```
compositeScore = Σ((meanTime / lowestMeanTimeOfGroup - 1) + (allocation / lowestAllocationOfGroup - 1) / 10)
```
A group is considered to be a list of benchmark entries which are inside the same file and have the same count and target framework. Now as some ORM's don't have any benchmarks entries for specific benchmark groups it will instead take the _lowest_ mean and the _lowest_  allocation from this group. The source code of the calculation can be found [here](./test/Venflow.Score).

#### Disclaimer

The benchmarks themselves or even the calculation of the composite numbers may not be right and contain bugs. Therefor take these results with a grain of salt. If you find any bugs inside the calculations or in the benchmarks please create an issue and I'll try to fix it ASAP.

## Is this package for you?

Especially for ORM's it is becoming a harder challenge than ever before, to choose the right one for you. This project tries to be as transparent as possible, so if any of the following points apply to you or your project, choose a different ORM at least for your current project.

- You are feeling unsure about writing raw SQL.
- <sup>†</sup> You are using a database other than PostgreSQL.
- <sup>†</sup> You rely on a code-first implementation.
- You require Linq2Sql.

*<sup>†</sup> indicates that this point might change it the future*

#### But why should I use Venflow over EF-Core anyway?

Obviously this project is nowhere near as mature as EF-Core as it already covers all your needs. However Venflow is all about performance in every way. You might ask yourself now, why would I even care? Well, especially for Web-Apps it really matters! Your response times for all requests involving some sort of Database interaction will immediately decrease. This also means that your application will not take up as much resources on your server. Obviously this only is applicable, if the website encounters somewhat high traffic.     

#### But why should I use Venflow over Dapper anyway?

Venflow supports a lot more things out of the box, such as automatically generated Delete/Insert statements, as well as simple change tracking to easily update specific entities. Another big factor, which probably is one of the biggest differences to Dapper, are the automatically generated materializers for queries. A lot of the times a materializer generated by Venflow will be faster, especially for bigger tables, than a hand written Dapper one. This is due to the nature of how Dapper and Venflow handle parsing of SQL results.

## Basic usage

As already mentioned, Venflow tries to keep the learning curve from other ORM's as low as possible, therefore a lot of patterns will seem familiar to either EFCore or Dapper.

### Basic configuration

_The official documentation and guides can be found [here](https://twentyfourminutes.github.io/Venflow/)_

In Venflow you are reflecting your PostgreSQL database with the `Database` class, which will host all of your tables. This class represents a connection to your database and therefor doesn't support multi threaded use. In the following example we will configure a database containing two tables, `Blogs` and `Posts`. One Blog contains many posts and a post contains a single Blog.

```cs
public class BlogDatabase : Database
{
    public Table<Blog> Blogs { get; set; }
    public Table<Post> Posts { get; set; }

    public BlogDatabase() : base("Your connection string.")
    {
    }
}
```

Now lets configure the actual relation between Blogs and Posts through the `EntityConfiguration<T>` class. In the `Configure` , method you can configure several things such as the name of the table this entity should map to and much more. These configuration classes do automatically get discovered, if they are in the same assembly as the `Database` class. If they are not in the same assembly, you can override the `Configure` method in the `Database` class which passes in a `DatabaseOptionsBuilder`, which will allow you to specify assemblies which should also be searched for entity configurations.

```cs
public class BlogConfiguration : EntityConfiguration<Blog>
{
    protected override void Configure(IEntityBuilder<Blog> entityBuilder)
    {
        entityBuilder.HasMany(b => b.Posts)
                     .WithOne(p => p.Blog)
                     .UsingForeignKey(p => p.PostId);
    }
}
```

An instance of your `Database` class exposes the underlying connection and the actual CRUD builders. In the example below you can see how you would query a set of Blogs with their posts.

```cs
await using var database = new BlogDatabase(); // You should register a Transient/Scoped your DI Container.

const string sql = @"SELECT * FROM ""Blogs"" JOIN ""Posts"" ON ""Posts"".""BlogId"" = ""Blogs"".""Id""";

var blogs = await database.Blogs.QueryBatch(sql).JoinWith(x => x.Posts).QueryAsync();
// Or
var blogs = await database.Blogs.QueryBatch<Post>((b, p) => $"SELECT * FROM {b} JOIN {p} ON {p.BlogId} = {b.Id}").QueryAsync();
```

With parameters, this could be written in one of the following two ways.

```cs
var id = 1;

var blogs = await database.Blogs.QueryBatch(b => $"SELECT * FROM {b} WHERE {b.Id} = {id}").QueryAsync();
// Or
var blogs = await database.Blogs.QueryInterpolatedBatch(@$"SELECT * FROM ""People"" WHERE ""Id"" = {id}").QueryAsync();
```

More on topic of querying and other CRUD operations can be found over on the [docs](https://twentyfourminutes.github.io/Venflow/guides/operations/query.html). 

## Road map

- Composed PK support
- Direct support for many to many relations
- Support for materialized Views
- Bulk operation support from [`PostgreSQL.Bulk`](https://github.com/TwentyFourMinutes/PostgreSQL.Bulk)
- Code-First
- AOT proxy/entity generation with Source Generators

### Acknowledgements

I also want to mention all the other great packages out there, build by awesome people, which helped with building Venflow in one way or another such as being open-source.

- [Npgsql](https://github.com/npgsql/npgsql) by [the Npgsql core contributers](https://github.com/npgsql/) for providing an awesome and fast PostgreSQL data provider.
- [Sharplab](https://github.com/ashmind/SharpLab) by [ashmind](https://github.com/ashmind) and the [sharplab.io](https://sharplab.io) website for immensely simplify the generation for IL.
- [EF-Core](https://github.com/dotnet/efcore) by [Microsoft and the .Net team](https://github.com/dotnet) for providing the inspiration for such an awesome surface API.
- [RepoDb](https://github.com/mikependon/RepoDb) by [mikependon](https://github.com/mikependon) for providing the idea of generating runtime IL/Expressions to boost performance.
- [Fody](https://github.com/Fody/Fody) by [the Fody core contributers](https://github.com/Fody) for providing an easy way to IL weave Venflow.
- [GitHub](https://github.com/) for hosting the documentation with [GitHub Pages](https://pages.github.com/) and the repository itself.
- [DocFX](https://github.com/dotnet/docfx) by [Microsoft and the .Net team](https://github.com/dotnet) for providing a great any easy static markdown/documentation html generator.
- [Typora](https://typora.io/) for being a fully extensive and great markdown editor.
- [GitKraken](https://www.gitkraken.com/) for providing a full fledged git UI with a bunch of great features.
- [Shields](https://shields.io/) for providing awesome badges for the README.

#### Awesome people which helped in the development

- [LunarLite](https://github.com/LunarLite) for helping me with highly complex logically issues.
- [AnotherZane](https://github.com/AnotherZane) for being one of the early preview testers. 
- [Jas](https://github.com/jas777) and [Altrius](https://github.com/AltriusRS) for providing general surface API ideas.

## Notes

### Contact information

If you feel like something is not working as intended or you are experiencing issues, feel free to create an issue. Also for feature requests just create an issue. For further information feel free to send me an [email](mailto:office@twenty-four.dev) at `office@twenty-four.dev` or message me on Discord `24_minutes#7496`.

## Sponsors

I wanna thank [JetBrains](https://www.jetbrains.com/?from=DulcisX) for providing me and the project with a free Open Source license for their whole JetBrains suite. Their tools greatly improve the development speed of this project. If you want to get a free Open Source license for your own project and their collaborators, visit their [Open Source page](https://www.jetbrains.com/opensource/).

<a href="https://www.jetbrains.com/?from=DulcisX"><img width="350px" src="images/jetbrains_logo.png"></a>


================================================
FILE: SECURITY.md
================================================
# Security Policy

## Supported Versions

Currently only the latest release candiate of the project is supported with security updates.

| Version | Supported          |
| ------- | ------------------ |
| 1.x  | :white_check_mark: |

## Reporting a Vulnerability

Security issues and bugs should be reported privately, by emailing office@twenty-four.dev. You should receive a response within 24-72 hours. If for some reason you do not, please follow up via email to ensure I received your original message.

Please do not open issues for anything you think might have a security implication.


================================================
FILE: Venflow.sln
================================================
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.0.31410.414
MinimumVisualStudioVersion = 10.0.40219.1
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Venflow", "src\Venflow\Venflow.csproj", "{B16B88AB-3D5E-4A8B-B11C-75F89EFABAEF}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Venflow.Benchmarks", "test\Venflow.Benchmarks\Venflow.Benchmarks.csproj", "{14283B7A-E5F9-4D42-899A-E2438C39DE0D}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Venflow.Tests", "test\Venflow.Tests\Venflow.Tests.csproj", "{BC0B800C-7EF7-42CD-AFEC-45A93EE3814B}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Venflow.Shared", "test\Venflow.Shared\Venflow.Shared.csproj", "{C03CA4A2-4B42-45E0-BB89-6965E4D8123D}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Venflow.Score", "test\Venflow.Score\Venflow.Score.csproj", "{F33684D5-806D-4040-9F19-32EDE6648F3C}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{665796E7-E527-43D5-B095-6000D6C0FF60}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Venflow.Extensions.Logging", "src\Venflow.Extensions.Logging\Venflow.Extensions.Logging.csproj", "{9D79B81A-BBDE-437F-954C-259BB8AA9336}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Venflow.Generators", "src\Venflow.Generators\Venflow.Generators.csproj", "{B617D0A6-90A0-4337-8F8B-D25F7A806040}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Analyzers", "Analyzers", "{3B6EB80A-E40F-464F-8455-67FE8FD7AC77}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{EE96D718-66F6-4941-9169-0F5F46D632A6}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Venflow.NewtonsoftJson", "src\Venflow.NewtonsoftJson\Venflow.NewtonsoftJson.csproj", "{AD531038-6689-45EE-8DF8-FB169F187FA2}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Venflow.AspNetCore", "src\Venflow.AspNetCore\Venflow.AspNetCore.csproj", "{06498DCC-F8EE-475F-8FDE-2E63EC88996D}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Venflow.Keys", "src\Venflow.Keys\Venflow.Keys.csproj", "{E282DF57-89A8-46F2-872F-37F84A84C87E}"
	ProjectSection(ProjectDependencies) = postProject
		{B617D0A6-90A0-4337-8F8B-D25F7A806040} = {B617D0A6-90A0-4337-8F8B-D25F7A806040}
	EndProjectSection
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Venflow.Tests.Keys", "test\Venflow.Tests.Keys\Venflow.Tests.Keys.csproj", "{9083AF7D-BB3C-47E5-8A6E-AC3A05DAED83}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{6D7D8C52-F02A-4C25-9D40-BE13ED9A7641}"
	ProjectSection(SolutionItems) = preProject
		.editorconfig = .editorconfig
	EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Extensions", "Extensions", "{9E9C09CF-506F-49A8-8970-35EEAE8EBFD7}"
EndProject
Global
	GlobalSection(SolutionConfigurationPlatforms) = preSolution
		Debug|Any CPU = Debug|Any CPU
		Release|Any CPU = Release|Any CPU
	EndGlobalSection
	GlobalSection(ProjectConfigurationPlatforms) = postSolution
		{B16B88AB-3D5E-4A8B-B11C-75F89EFABAEF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
		{B16B88AB-3D5E-4A8B-B11C-75F89EFABAEF}.Debug|Any CPU.Build.0 = Debug|Any CPU
		{B16B88AB-3D5E-4A8B-B11C-75F89EFABAEF}.Release|Any CPU.ActiveCfg = Release|Any CPU
		{B16B88AB-3D5E-4A8B-B11C-75F89EFABAEF}.Release|Any CPU.Build.0 = Release|Any CPU
		{14283B7A-E5F9-4D42-899A-E2438C39DE0D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
		{14283B7A-E5F9-4D42-899A-E2438C39DE0D}.Debug|Any CPU.Build.0 = Debug|Any CPU
		{14283B7A-E5F9-4D42-899A-E2438C39DE0D}.Release|Any CPU.ActiveCfg = Release|Any CPU
		{14283B7A-E5F9-4D42-899A-E2438C39DE0D}.Release|Any CPU.Build.0 = Release|Any CPU
		{BC0B800C-7EF7-42CD-AFEC-45A93EE3814B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
		{BC0B800C-7EF7-42CD-AFEC-45A93EE3814B}.Debug|Any CPU.Build.0 = Debug|Any CPU
		{BC0B800C-7EF7-42CD-AFEC-45A93EE3814B}.Release|Any CPU.ActiveCfg = Release|Any CPU
		{BC0B800C-7EF7-42CD-AFEC-45A93EE3814B}.Release|Any CPU.Build.0 = Release|Any CPU
		{C03CA4A2-4B42-45E0-BB89-6965E4D8123D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
		{C03CA4A2-4B42-45E0-BB89-6965E4D8123D}.Debug|Any CPU.Build.0 = Debug|Any CPU
		{C03CA4A2-4B42-45E0-BB89-6965E4D8123D}.Release|Any CPU.ActiveCfg = Release|Any CPU
		{C03CA4A2-4B42-45E0-BB89-6965E4D8123D}.Release|Any CPU.Build.0 = Release|Any CPU
		{F33684D5-806D-4040-9F19-32EDE6648F3C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
		{F33684D5-806D-4040-9F19-32EDE6648F3C}.Debug|Any CPU.Build.0 = Debug|Any CPU
		{F33684D5-806D-4040-9F19-32EDE6648F3C}.Release|Any CPU.ActiveCfg = Release|Any CPU
		{F33684D5-806D-4040-9F19-32EDE6648F3C}.Release|Any CPU.Build.0 = Release|Any CPU
		{9D79B81A-BBDE-437F-954C-259BB8AA9336}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
		{9D79B81A-BBDE-437F-954C-259BB8AA9336}.Debug|Any CPU.Build.0 = Debug|Any CPU
		{9D79B81A-BBDE-437F-954C-259BB8AA9336}.Release|Any CPU.ActiveCfg = Release|Any CPU
		{9D79B81A-BBDE-437F-954C-259BB8AA9336}.Release|Any CPU.Build.0 = Release|Any CPU
		{B617D0A6-90A0-4337-8F8B-D25F7A806040}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
		{B617D0A6-90A0-4337-8F8B-D25F7A806040}.Debug|Any CPU.Build.0 = Debug|Any CPU
		{B617D0A6-90A0-4337-8F8B-D25F7A806040}.Release|Any CPU.ActiveCfg = Release|Any CPU
		{B617D0A6-90A0-4337-8F8B-D25F7A806040}.Release|Any CPU.Build.0 = Release|Any CPU
		{AD531038-6689-45EE-8DF8-FB169F187FA2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
		{AD531038-6689-45EE-8DF8-FB169F187FA2}.Debug|Any CPU.Build.0 = Debug|Any CPU
		{AD531038-6689-45EE-8DF8-FB169F187FA2}.Release|Any CPU.ActiveCfg = Release|Any CPU
		{AD531038-6689-45EE-8DF8-FB169F187FA2}.Release|Any CPU.Build.0 = Release|Any CPU
		{06498DCC-F8EE-475F-8FDE-2E63EC88996D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
		{06498DCC-F8EE-475F-8FDE-2E63EC88996D}.Debug|Any CPU.Build.0 = Debug|Any CPU
		{06498DCC-F8EE-475F-8FDE-2E63EC88996D}.Release|Any CPU.ActiveCfg = Release|Any CPU
		{06498DCC-F8EE-475F-8FDE-2E63EC88996D}.Release|Any CPU.Build.0 = Release|Any CPU
		{E282DF57-89A8-46F2-872F-37F84A84C87E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
		{E282DF57-89A8-46F2-872F-37F84A84C87E}.Debug|Any CPU.Build.0 = Debug|Any CPU
		{E282DF57-89A8-46F2-872F-37F84A84C87E}.Release|Any CPU.ActiveCfg = Release|Any CPU
		{E282DF57-89A8-46F2-872F-37F84A84C87E}.Release|Any CPU.Build.0 = Release|Any CPU
		{9083AF7D-BB3C-47E5-8A6E-AC3A05DAED83}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
		{9083AF7D-BB3C-47E5-8A6E-AC3A05DAED83}.Debug|Any CPU.Build.0 = Debug|Any CPU
		{9083AF7D-BB3C-47E5-8A6E-AC3A05DAED83}.Release|Any CPU.ActiveCfg = Release|Any CPU
		{9083AF7D-BB3C-47E5-8A6E-AC3A05DAED83}.Release|Any CPU.Build.0 = Release|Any CPU
	EndGlobalSection
	GlobalSection(SolutionProperties) = preSolution
		HideSolutionNode = FALSE
	EndGlobalSection
	GlobalSection(NestedProjects) = preSolution
		{B16B88AB-3D5E-4A8B-B11C-75F89EFABAEF} = {665796E7-E527-43D5-B095-6000D6C0FF60}
		{14283B7A-E5F9-4D42-899A-E2438C39DE0D} = {EE96D718-66F6-4941-9169-0F5F46D632A6}
		{BC0B800C-7EF7-42CD-AFEC-45A93EE3814B} = {EE96D718-66F6-4941-9169-0F5F46D632A6}
		{C03CA4A2-4B42-45E0-BB89-6965E4D8123D} = {EE96D718-66F6-4941-9169-0F5F46D632A6}
		{F33684D5-806D-4040-9F19-32EDE6648F3C} = {EE96D718-66F6-4941-9169-0F5F46D632A6}
		{9D79B81A-BBDE-437F-954C-259BB8AA9336} = {9E9C09CF-506F-49A8-8970-35EEAE8EBFD7}
		{B617D0A6-90A0-4337-8F8B-D25F7A806040} = {3B6EB80A-E40F-464F-8455-67FE8FD7AC77}
		{3B6EB80A-E40F-464F-8455-67FE8FD7AC77} = {665796E7-E527-43D5-B095-6000D6C0FF60}
		{AD531038-6689-45EE-8DF8-FB169F187FA2} = {9E9C09CF-506F-49A8-8970-35EEAE8EBFD7}
		{06498DCC-F8EE-475F-8FDE-2E63EC88996D} = {9E9C09CF-506F-49A8-8970-35EEAE8EBFD7}
		{E282DF57-89A8-46F2-872F-37F84A84C87E} = {665796E7-E527-43D5-B095-6000D6C0FF60}
		{9083AF7D-BB3C-47E5-8A6E-AC3A05DAED83} = {EE96D718-66F6-4941-9169-0F5F46D632A6}
		{9E9C09CF-506F-49A8-8970-35EEAE8EBFD7} = {665796E7-E527-43D5-B095-6000D6C0FF60}
	EndGlobalSection
	GlobalSection(ExtensibilityGlobals) = postSolution
		SolutionGuid = {020D29CB-7D63-45D4-8F95-7C89DC06E6E6}
	EndGlobalSection
EndGlobal


================================================
FILE: benchmarks/DeleteBatch.csv
================================================
Method,Job,AnalyzeLaunchVariance,EvaluateOverhead,MaxAbsoluteError,MaxRelativeError,MinInvokeCount,MinIterationTime,OutlierMode,Affinity,EnvironmentVariables,Jit,Platform,PowerPlanMode,Runtime,AllowVeryLargeObjects,Concurrent,CpuGroups,Force,HeapAffinitizeMask,HeapCount,NoAffinitize,RetainVm,Server,Arguments,BuildConfiguration,Clock,EngineFactory,NuGetReferences,Toolchain,IsMutator,InvocationCount,IterationCount,IterationTime,LaunchCount,MaxIterationCount,MaxWarmupIterationCount,MemoryRandomization,MinIterationCount,MinWarmupIterationCount,RunStrategy,UnrollFactor,WarmupCount,BatchCount,Mean,Error,StdDev,Ratio,RatioSD,Gen 0,Gen 1,Gen 2,Allocated
EFCoreDeleteBatchAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,10,2.876 ms,0.0559 ms,0.0686 ms,1.00,0.00,0.0000,0.0000,0.0000,82 KB
VenflowDeleteBatchAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,10,1.749 ms,0.0347 ms,0.0643 ms,0.62,0.03,0.0000,0.0000,0.0000,17 KB
RepoDbDeleteBatchAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,10,1.811 ms,0.0352 ms,0.0505 ms,0.63,0.03,0.0000,0.0000,0.0000,28 KB
EFCoreDeleteBatchAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,100,11.002 ms,0.2100 ms,0.2247 ms,1.00,0.00,15.6250,0.0000,0.0000,729 KB
VenflowDeleteBatchAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,100,3.290 ms,0.0644 ms,0.1058 ms,0.30,0.01,3.9063,0.0000,0.0000,112 KB
RepoDbDeleteBatchAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,100,3.589 ms,0.0699 ms,0.1046 ms,0.33,0.01,0.0000,0.0000,0.0000,154 KB
EFCoreDeleteBatchAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,1000,89.576 ms,1.7651 ms,2.0327 ms,1.00,0.00,166.6667,0.0000,0.0000,"7,127 KB"
VenflowDeleteBatchAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,1000,14.871 ms,0.2909 ms,0.3572 ms,0.17,0.01,31.2500,0.0000,0.0000,"1,069 KB"
RepoDbDeleteBatchAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,1000,31.644 ms,0.5389 ms,0.6816 ms,0.35,0.01,62.5000,0.0000,0.0000,"2,559 KB"
EFCoreDeleteBatchAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,10000,930.914 ms,17.4743 ms,16.3454 ms,1.00,0.00,2000.0000,1000.0000,0.0000,"71,313 KB"
VenflowDeleteBatchAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,10000,142.113 ms,2.7685 ms,3.3999 ms,0.15,0.00,250.0000,0.0000,0.0000,"10,745 KB"
RepoDbDeleteBatchAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,10000,479.895 ms,8.6848 ms,7.6988 ms,0.52,0.01,3000.0000,1000.0000,0.0000,"95,553 KB"


================================================
FILE: benchmarks/DeleteBatch.md
================================================
``` ini

BenchmarkDotNet=v0.13.0, OS=ubuntu 20.04
Intel Xeon CPU E5-2673 v4 2.30GHz, 1 CPU, 2 logical and 2 physical cores
.NET SDK=6.0.100-preview.7.21379.14
  [Host]   : .NET 6.0.0 (6.0.21.37719), X64 RyuJIT
  .NET 6.0 : .NET 6.0.0 (6.0.21.37719), X64 RyuJIT

Job=.NET 6.0  Runtime=.NET 6.0  

```
|                  Method | BatchCount |       Mean |      Error |     StdDev | Ratio | RatioSD |     Gen 0 |     Gen 1 | Gen 2 | Allocated |
|------------------------ |----------- |-----------:|-----------:|-----------:|------:|--------:|----------:|----------:|------:|----------:|
|  **EFCoreDeleteBatchAsync** |         **10** |   **2.876 ms** |  **0.0559 ms** |  **0.0686 ms** |  **1.00** |    **0.00** |         **-** |         **-** |     **-** |     **82 KB** |
| VenflowDeleteBatchAsync |         10 |   1.749 ms |  0.0347 ms |  0.0643 ms |  0.62 |    0.03 |         - |         - |     - |     17 KB |
|  RepoDbDeleteBatchAsync |         10 |   1.811 ms |  0.0352 ms |  0.0505 ms |  0.63 |    0.03 |         - |         - |     - |     28 KB |
|                         |            |            |            |            |       |         |           |           |       |           |
|  **EFCoreDeleteBatchAsync** |        **100** |  **11.002 ms** |  **0.2100 ms** |  **0.2247 ms** |  **1.00** |    **0.00** |   **15.6250** |         **-** |     **-** |    **729 KB** |
| VenflowDeleteBatchAsync |        100 |   3.290 ms |  0.0644 ms |  0.1058 ms |  0.30 |    0.01 |    3.9063 |         - |     - |    112 KB |
|  RepoDbDeleteBatchAsync |        100 |   3.589 ms |  0.0699 ms |  0.1046 ms |  0.33 |    0.01 |         - |         - |     - |    154 KB |
|                         |            |            |            |            |       |         |           |           |       |           |
|  **EFCoreDeleteBatchAsync** |       **1000** |  **89.576 ms** |  **1.7651 ms** |  **2.0327 ms** |  **1.00** |    **0.00** |  **166.6667** |         **-** |     **-** |  **7,127 KB** |
| VenflowDeleteBatchAsync |       1000 |  14.871 ms |  0.2909 ms |  0.3572 ms |  0.17 |    0.01 |   31.2500 |         - |     - |  1,069 KB |
|  RepoDbDeleteBatchAsync |       1000 |  31.644 ms |  0.5389 ms |  0.6816 ms |  0.35 |    0.01 |   62.5000 |         - |     - |  2,559 KB |
|                         |            |            |            |            |       |         |           |           |       |           |
|  **EFCoreDeleteBatchAsync** |      **10000** | **930.914 ms** | **17.4743 ms** | **16.3454 ms** |  **1.00** |    **0.00** | **2000.0000** | **1000.0000** |     **-** | **71,313 KB** |
| VenflowDeleteBatchAsync |      10000 | 142.113 ms |  2.7685 ms |  3.3999 ms |  0.15 |    0.00 |  250.0000 |         - |     - | 10,745 KB |
|  RepoDbDeleteBatchAsync |      10000 | 479.895 ms |  8.6848 ms |  7.6988 ms |  0.52 |    0.01 | 3000.0000 | 1000.0000 |     - | 95,553 KB |


================================================
FILE: benchmarks/DeleteSingle.csv
================================================
Method,Job,AnalyzeLaunchVariance,EvaluateOverhead,MaxAbsoluteError,MaxRelativeError,MinInvokeCount,MinIterationTime,OutlierMode,Affinity,EnvironmentVariables,Jit,Platform,PowerPlanMode,Runtime,AllowVeryLargeObjects,Concurrent,CpuGroups,Force,HeapAffinitizeMask,HeapCount,NoAffinitize,RetainVm,Server,Arguments,BuildConfiguration,Clock,EngineFactory,NuGetReferences,Toolchain,IsMutator,InvocationCount,IterationCount,IterationTime,LaunchCount,MaxIterationCount,MaxWarmupIterationCount,MemoryRandomization,MinIterationCount,MinWarmupIterationCount,RunStrategy,UnrollFactor,WarmupCount,Mean,Error,StdDev,Ratio,RatioSD,Gen 0,Gen 1,Gen 2,Allocated
EFCoreDeleteSingleAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,1.827 ms,0.0364 ms,0.0419 ms,1.00,0.00,0.0000,0.0000,0.0000,18 KB
VenflowDeleteSingleAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,1.575 ms,0.0314 ms,0.0397 ms,0.86,0.03,0.0000,0.0000,0.0000,8 KB
RepoDbDeleteSingleAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,1.437 ms,0.0285 ms,0.0390 ms,0.78,0.03,0.0000,0.0000,0.0000,11 KB


================================================
FILE: benchmarks/DeleteSingle.md
================================================
``` ini

BenchmarkDotNet=v0.13.0, OS=ubuntu 20.04
Intel Xeon CPU E5-2673 v4 2.30GHz, 1 CPU, 2 logical and 2 physical cores
.NET SDK=6.0.100-preview.7.21379.14
  [Host]   : .NET 6.0.0 (6.0.21.37719), X64 RyuJIT
  .NET 6.0 : .NET 6.0.0 (6.0.21.37719), X64 RyuJIT

Job=.NET 6.0  Runtime=.NET 6.0  

```
|                   Method |     Mean |     Error |    StdDev | Ratio | RatioSD | Gen 0 | Gen 1 | Gen 2 | Allocated |
|------------------------- |---------:|----------:|----------:|------:|--------:|------:|------:|------:|----------:|
|  EFCoreDeleteSingleAsync | 1.827 ms | 0.0364 ms | 0.0419 ms |  1.00 |    0.00 |     - |     - |     - |     18 KB |
| VenflowDeleteSingleAsync | 1.575 ms | 0.0314 ms | 0.0397 ms |  0.86 |    0.03 |     - |     - |     - |      8 KB |
|  RepoDbDeleteSingleAsync | 1.437 ms | 0.0285 ms | 0.0390 ms |  0.78 |    0.03 |     - |     - |     - |     11 KB |


================================================
FILE: benchmarks/InsertBatch.csv
================================================
Method,Job,AnalyzeLaunchVariance,EvaluateOverhead,MaxAbsoluteError,MaxRelativeError,MinInvokeCount,MinIterationTime,OutlierMode,Affinity,EnvironmentVariables,Jit,Platform,PowerPlanMode,Runtime,AllowVeryLargeObjects,Concurrent,CpuGroups,Force,HeapAffinitizeMask,HeapCount,NoAffinitize,RetainVm,Server,Arguments,BuildConfiguration,Clock,EngineFactory,NuGetReferences,Toolchain,IsMutator,InvocationCount,IterationCount,IterationTime,LaunchCount,MaxIterationCount,MaxWarmupIterationCount,MemoryRandomization,MinIterationCount,MinWarmupIterationCount,RunStrategy,UnrollFactor,WarmupCount,BatchCount,Mean,Error,StdDev,Ratio,RatioSD,Gen 0,Gen 1,Gen 2,Allocated
EfCoreInsertBatchAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,10,"1,832.0 μs",31.36 μs,42.93 μs,1.00,0.00,0.0000,0.0000,0.0000,97 KB
VenflowInsertBatchAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,10,861.9 μs,11.19 μs,9.35 μs,0.47,0.01,0.0000,0.0000,0.0000,10 KB
RepoDbInsertBatchAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,10,967.5 μs,19.26 μs,27.63 μs,0.53,0.02,0.0000,0.0000,0.0000,15 KB
EfCoreInsertBatchAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,100,"9,024.5 μs",162.70 μs,144.23 μs,1.00,0.00,31.2500,15.6250,0.0000,903 KB
VenflowInsertBatchAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,100,"1,432.8 μs",28.50 μs,78.50 μs,0.16,0.01,1.9531,0.0000,0.0000,70 KB
RepoDbInsertBatchAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,100,"4,616.2 μs",90.25 μs,117.35 μs,0.51,0.02,0.0000,0.0000,0.0000,143 KB
EfCoreInsertBatchAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,1000,"74,136.9 μs","1,447.68 μs","1,723.36 μs",1.00,0.00,285.7143,142.8571,0.0000,"8,950 KB"
VenflowInsertBatchAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,1000,"5,827.1 μs",111.59 μs,114.59 μs,0.08,0.00,23.4375,7.8125,0.0000,674 KB
RepoDbInsertBatchAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,1000,"41,829.2 μs",818.37 μs,"1,034.98 μs",0.57,0.02,0.0000,0.0000,0.0000,"1,395 KB"
EfCoreInsertBatchAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,10000,"741,119.2 μs","12,546.64 μs","11,736.14 μs",1.00,0.00,3000.0000,1000.0000,0.0000,"89,619 KB"
VenflowInsertBatchAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,10000,"53,774.8 μs","1,023.50 μs","1,051.06 μs",0.07,0.00,200.0000,100.0000,0.0000,"6,789 KB"
RepoDbInsertBatchAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,10000,"581,487.0 μs","11,615.43 μs","20,343.49 μs",0.79,0.02,0.0000,0.0000,0.0000,"13,754 KB"


================================================
FILE: benchmarks/InsertBatch.md
================================================
``` ini

BenchmarkDotNet=v0.13.0, OS=ubuntu 20.04
Intel Xeon CPU E5-2673 v4 2.30GHz, 1 CPU, 2 logical and 2 physical cores
.NET SDK=6.0.100-preview.7.21379.14
  [Host]   : .NET 6.0.0 (6.0.21.37719), X64 RyuJIT
  .NET 6.0 : .NET 6.0.0 (6.0.21.37719), X64 RyuJIT

Job=.NET 6.0  Runtime=.NET 6.0  

```
|                  Method | BatchCount |         Mean |        Error |       StdDev | Ratio | RatioSD |     Gen 0 |     Gen 1 | Gen 2 | Allocated |
|------------------------ |----------- |-------------:|-------------:|-------------:|------:|--------:|----------:|----------:|------:|----------:|
|  **EfCoreInsertBatchAsync** |         **10** |   **1,832.0 μs** |     **31.36 μs** |     **42.93 μs** |  **1.00** |    **0.00** |         **-** |         **-** |     **-** |     **97 KB** |
| VenflowInsertBatchAsync |         10 |     861.9 μs |     11.19 μs |      9.35 μs |  0.47 |    0.01 |         - |         - |     - |     10 KB |
|  RepoDbInsertBatchAsync |         10 |     967.5 μs |     19.26 μs |     27.63 μs |  0.53 |    0.02 |         - |         - |     - |     15 KB |
|                         |            |              |              |              |       |         |           |           |       |           |
|  **EfCoreInsertBatchAsync** |        **100** |   **9,024.5 μs** |    **162.70 μs** |    **144.23 μs** |  **1.00** |    **0.00** |   **31.2500** |   **15.6250** |     **-** |    **903 KB** |
| VenflowInsertBatchAsync |        100 |   1,432.8 μs |     28.50 μs |     78.50 μs |  0.16 |    0.01 |    1.9531 |         - |     - |     70 KB |
|  RepoDbInsertBatchAsync |        100 |   4,616.2 μs |     90.25 μs |    117.35 μs |  0.51 |    0.02 |         - |         - |     - |    143 KB |
|                         |            |              |              |              |       |         |           |           |       |           |
|  **EfCoreInsertBatchAsync** |       **1000** |  **74,136.9 μs** |  **1,447.68 μs** |  **1,723.36 μs** |  **1.00** |    **0.00** |  **285.7143** |  **142.8571** |     **-** |  **8,950 KB** |
| VenflowInsertBatchAsync |       1000 |   5,827.1 μs |    111.59 μs |    114.59 μs |  0.08 |    0.00 |   23.4375 |    7.8125 |     - |    674 KB |
|  RepoDbInsertBatchAsync |       1000 |  41,829.2 μs |    818.37 μs |  1,034.98 μs |  0.57 |    0.02 |         - |         - |     - |  1,395 KB |
|                         |            |              |              |              |       |         |           |           |       |           |
|  **EfCoreInsertBatchAsync** |      **10000** | **741,119.2 μs** | **12,546.64 μs** | **11,736.14 μs** |  **1.00** |    **0.00** | **3000.0000** | **1000.0000** |     **-** | **89,619 KB** |
| VenflowInsertBatchAsync |      10000 |  53,774.8 μs |  1,023.50 μs |  1,051.06 μs |  0.07 |    0.00 |  200.0000 |  100.0000 |     - |  6,789 KB |
|  RepoDbInsertBatchAsync |      10000 | 581,487.0 μs | 11,615.43 μs | 20,343.49 μs |  0.79 |    0.02 |         - |         - |     - | 13,754 KB |


================================================
FILE: benchmarks/InsertBatchWithRelations.csv
================================================
Method,Job,AnalyzeLaunchVariance,EvaluateOverhead,MaxAbsoluteError,MaxRelativeError,MinInvokeCount,MinIterationTime,OutlierMode,Affinity,EnvironmentVariables,Jit,Platform,PowerPlanMode,Runtime,AllowVeryLargeObjects,Concurrent,CpuGroups,Force,HeapAffinitizeMask,HeapCount,NoAffinitize,RetainVm,Server,Arguments,BuildConfiguration,Clock,EngineFactory,NuGetReferences,Toolchain,IsMutator,InvocationCount,IterationCount,IterationTime,LaunchCount,MaxIterationCount,MaxWarmupIterationCount,MemoryRandomization,MinIterationCount,MinWarmupIterationCount,RunStrategy,UnrollFactor,WarmupCount,BatchCount,Mean,Error,StdDev,Ratio,Gen 0,Gen 1,Gen 2,Allocated
EfCoreInsertBatchAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,10,11.302 ms,0.1364 ms,0.1209 ms,1.00,31.2500,15.6250,0.0000,969 KB
VenflowInsertBatchAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,10,2.682 ms,0.0513 ms,0.0527 ms,0.24,0.0000,0.0000,0.0000,82 KB
EfCoreInsertBatchAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,100,83.651 ms,1.6702 ms,1.9883 ms,1.00,333.3333,166.6667,0.0000,"10,982 KB"
VenflowInsertBatchAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,100,11.452 ms,0.2147 ms,0.2008 ms,0.14,31.2500,15.6250,0.0000,807 KB
EfCoreInsertBatchAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,1000,813.300 ms,11.7411 ms,9.8043 ms,1.00,3000.0000,1000.0000,0.0000,"94,187 KB"
VenflowInsertBatchAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,1000,103.848 ms,2.0310 ms,3.5571 ms,0.13,200.0000,0.0000,0.0000,"7,888 KB"
EfCoreInsertBatchAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,10000,"8,422.345 ms",113.1848 ms,105.8732 ms,1.00,34000.0000,12000.0000,0.0000,"942,093 KB"
VenflowInsertBatchAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,10000,"1,067.643 ms",21.1191 ms,22.5972 ms,0.13,2000.0000,1000.0000,0.0000,"79,240 KB"


================================================
FILE: benchmarks/InsertBatchWithRelations.md
================================================
``` ini

BenchmarkDotNet=v0.13.0, OS=ubuntu 20.04
Intel Xeon CPU E5-2673 v4 2.30GHz, 1 CPU, 2 logical and 2 physical cores
.NET SDK=6.0.100-preview.7.21379.14
  [Host]   : .NET 6.0.0 (6.0.21.37719), X64 RyuJIT
  .NET 6.0 : .NET 6.0.0 (6.0.21.37719), X64 RyuJIT

Job=.NET 6.0  Runtime=.NET 6.0  

```
|                  Method | BatchCount |         Mean |       Error |      StdDev | Ratio |      Gen 0 |      Gen 1 | Gen 2 |  Allocated |
|------------------------ |----------- |-------------:|------------:|------------:|------:|-----------:|-----------:|------:|-----------:|
|  **EfCoreInsertBatchAsync** |         **10** |    **11.302 ms** |   **0.1364 ms** |   **0.1209 ms** |  **1.00** |    **31.2500** |    **15.6250** |     **-** |     **969 KB** |
| VenflowInsertBatchAsync |         10 |     2.682 ms |   0.0513 ms |   0.0527 ms |  0.24 |          - |          - |     - |      82 KB |
|                         |            |              |             |             |       |            |            |       |            |
|  **EfCoreInsertBatchAsync** |        **100** |    **83.651 ms** |   **1.6702 ms** |   **1.9883 ms** |  **1.00** |   **333.3333** |   **166.6667** |     **-** |  **10,982 KB** |
| VenflowInsertBatchAsync |        100 |    11.452 ms |   0.2147 ms |   0.2008 ms |  0.14 |    31.2500 |    15.6250 |     - |     807 KB |
|                         |            |              |             |             |       |            |            |       |            |
|  **EfCoreInsertBatchAsync** |       **1000** |   **813.300 ms** |  **11.7411 ms** |   **9.8043 ms** |  **1.00** |  **3000.0000** |  **1000.0000** |     **-** |  **94,187 KB** |
| VenflowInsertBatchAsync |       1000 |   103.848 ms |   2.0310 ms |   3.5571 ms |  0.13 |   200.0000 |          - |     - |   7,888 KB |
|                         |            |              |             |             |       |            |            |       |            |
|  **EfCoreInsertBatchAsync** |      **10000** | **8,422.345 ms** | **113.1848 ms** | **105.8732 ms** |  **1.00** | **34000.0000** | **12000.0000** |     **-** | **942,093 KB** |
| VenflowInsertBatchAsync |      10000 | 1,067.643 ms |  21.1191 ms |  22.5972 ms |  0.13 |  2000.0000 |  1000.0000 |     - |  79,240 KB |


================================================
FILE: benchmarks/InsertSingle.csv
================================================
Method,Job,AnalyzeLaunchVariance,EvaluateOverhead,MaxAbsoluteError,MaxRelativeError,MinInvokeCount,MinIterationTime,OutlierMode,Affinity,EnvironmentVariables,Jit,Platform,PowerPlanMode,Runtime,AllowVeryLargeObjects,Concurrent,CpuGroups,Force,HeapAffinitizeMask,HeapCount,NoAffinitize,RetainVm,Server,Arguments,BuildConfiguration,Clock,EngineFactory,NuGetReferences,Toolchain,IsMutator,InvocationCount,IterationCount,IterationTime,LaunchCount,MaxIterationCount,MaxWarmupIterationCount,MemoryRandomization,MinIterationCount,MinWarmupIterationCount,RunStrategy,UnrollFactor,WarmupCount,Mean,Error,StdDev,Ratio,RatioSD,Gen 0,Gen 1,Gen 2,Allocated
EFCoreInsertSingleAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,"1,051.5 μs",20.71 μs,37.35 μs,1.00,0.00,0.0000,0.0000,0.0000,16 KB
VenflowInsertSingleAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,801.8 μs,15.86 μs,16.29 μs,0.77,0.03,0.0000,0.0000,0.0000,4 KB
RepoDbInsertSingleAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,593.7 μs,11.77 μs,26.09 μs,0.56,0.04,0.0000,0.0000,0.0000,3 KB


================================================
FILE: benchmarks/InsertSingle.md
================================================
``` ini

BenchmarkDotNet=v0.13.0, OS=ubuntu 20.04
Intel Xeon CPU E5-2673 v4 2.30GHz, 1 CPU, 2 logical and 2 physical cores
.NET SDK=6.0.100-preview.7.21379.14
  [Host]   : .NET 6.0.0 (6.0.21.37719), X64 RyuJIT
  .NET 6.0 : .NET 6.0.0 (6.0.21.37719), X64 RyuJIT

Job=.NET 6.0  Runtime=.NET 6.0  

```
|                   Method |       Mean |    Error |   StdDev | Ratio | RatioSD | Gen 0 | Gen 1 | Gen 2 | Allocated |
|------------------------- |-----------:|---------:|---------:|------:|--------:|------:|------:|------:|----------:|
|  EFCoreInsertSingleAsync | 1,051.5 μs | 20.71 μs | 37.35 μs |  1.00 |    0.00 |     - |     - |     - |     16 KB |
| VenflowInsertSingleAsync |   801.8 μs | 15.86 μs | 16.29 μs |  0.77 |    0.03 |     - |     - |     - |      4 KB |
|  RepoDbInsertSingleAsync |   593.7 μs | 11.77 μs | 26.09 μs |  0.56 |    0.04 |     - |     - |     - |      3 KB |


================================================
FILE: benchmarks/InsertSingleWithRelations.csv
================================================
Method,Job,AnalyzeLaunchVariance,EvaluateOverhead,MaxAbsoluteError,MaxRelativeError,MinInvokeCount,MinIterationTime,OutlierMode,Affinity,EnvironmentVariables,Jit,Platform,PowerPlanMode,Runtime,AllowVeryLargeObjects,Concurrent,CpuGroups,Force,HeapAffinitizeMask,HeapCount,NoAffinitize,RetainVm,Server,Arguments,BuildConfiguration,Clock,EngineFactory,NuGetReferences,Toolchain,IsMutator,InvocationCount,IterationCount,IterationTime,LaunchCount,MaxIterationCount,MaxWarmupIterationCount,MemoryRandomization,MinIterationCount,MinWarmupIterationCount,RunStrategy,UnrollFactor,WarmupCount,Mean,Error,StdDev,Ratio,RatioSD,Gen 0,Gen 1,Gen 2,Allocated
EfCoreInsertSingleAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,2.337 ms,0.0459 ms,0.0429 ms,1.00,0.00,0.0000,0.0000,0.0000,65 KB
VenflowInsertSingleAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,1.468 ms,0.0266 ms,0.0336 ms,0.62,0.02,0.0000,0.0000,0.0000,10 KB


================================================
FILE: benchmarks/InsertSingleWithRelations.md
================================================
``` ini

BenchmarkDotNet=v0.13.0, OS=ubuntu 20.04
Intel Xeon CPU E5-2673 v4 2.30GHz, 1 CPU, 2 logical and 2 physical cores
.NET SDK=6.0.100-preview.7.21379.14
  [Host]   : .NET 6.0.0 (6.0.21.37719), X64 RyuJIT
  .NET 6.0 : .NET 6.0.0 (6.0.21.37719), X64 RyuJIT

Job=.NET 6.0  Runtime=.NET 6.0  

```
|                   Method |     Mean |     Error |    StdDev | Ratio | RatioSD | Gen 0 | Gen 1 | Gen 2 | Allocated |
|------------------------- |---------:|----------:|----------:|------:|--------:|------:|------:|------:|----------:|
|  EfCoreInsertSingleAsync | 2.337 ms | 0.0459 ms | 0.0429 ms |  1.00 |    0.00 |     - |     - |     - |     65 KB |
| VenflowInsertSingleAsync | 1.468 ms | 0.0266 ms | 0.0336 ms |  0.62 |    0.02 |     - |     - |     - |     10 KB |


================================================
FILE: benchmarks/Instantiation.csv
================================================
Method,Job,AnalyzeLaunchVariance,EvaluateOverhead,MaxAbsoluteError,MaxRelativeError,MinInvokeCount,MinIterationTime,OutlierMode,Affinity,EnvironmentVariables,Jit,Platform,PowerPlanMode,Runtime,AllowVeryLargeObjects,Concurrent,CpuGroups,Force,HeapAffinitizeMask,HeapCount,NoAffinitize,RetainVm,Server,Arguments,BuildConfiguration,Clock,EngineFactory,NuGetReferences,Toolchain,IsMutator,InvocationCount,IterationCount,IterationTime,LaunchCount,MaxIterationCount,MaxWarmupIterationCount,MemoryRandomization,MinIterationCount,MinWarmupIterationCount,RunStrategy,UnrollFactor,WarmupCount,Mean,Error,StdDev,Gen 0,Gen 1,Gen 2,Allocated
InstantiateEFCoreContext,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,73.08 μs,1.434 μs,2.057 μs,1.7090,0.0000,0.0000,46 KB
InstantiateVenflowDatabase,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,63.32 μs,1.226 μs,1.718 μs,1.3428,0.0000,0.0000,37 KB


================================================
FILE: benchmarks/Instantiation.md
================================================
``` ini

BenchmarkDotNet=v0.13.0, OS=ubuntu 20.04
Intel Xeon CPU E5-2673 v4 2.30GHz, 1 CPU, 2 logical and 2 physical cores
.NET SDK=6.0.100-preview.7.21379.14
  [Host]   : .NET 6.0.0 (6.0.21.37719), X64 RyuJIT
  .NET 6.0 : .NET 6.0.0 (6.0.21.37719), X64 RyuJIT

Job=.NET 6.0  Runtime=.NET 6.0  

```
|                     Method |     Mean |    Error |   StdDev |  Gen 0 | Gen 1 | Gen 2 | Allocated |
|--------------------------- |---------:|---------:|---------:|-------:|------:|------:|----------:|
|   InstantiateEFCoreContext | 73.08 μs | 1.434 μs | 2.057 μs | 1.7090 |     - |     - |     46 KB |
| InstantiateVenflowDatabase | 63.32 μs | 1.226 μs | 1.718 μs | 1.3428 |     - |     - |     37 KB |


================================================
FILE: benchmarks/QueryBatch.csv
================================================
Method,Job,AnalyzeLaunchVariance,EvaluateOverhead,MaxAbsoluteError,MaxRelativeError,MinInvokeCount,MinIterationTime,OutlierMode,Affinity,EnvironmentVariables,Jit,Platform,PowerPlanMode,Runtime,AllowVeryLargeObjects,Concurrent,CpuGroups,Force,HeapAffinitizeMask,HeapCount,NoAffinitize,RetainVm,Server,Arguments,BuildConfiguration,Clock,EngineFactory,NuGetReferences,Toolchain,IsMutator,InvocationCount,IterationCount,IterationTime,LaunchCount,MaxIterationCount,MaxWarmupIterationCount,MemoryRandomization,MinIterationCount,MinWarmupIterationCount,RunStrategy,UnrollFactor,WarmupCount,BatchCount,Mean,Error,StdDev,Ratio,RatioSD,Gen 0,Gen 1,Gen 2,Allocated
EfCoreQueryBatchAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,10,455.9 μs,9.02 μs,16.49 μs,1.00,0.00,0.0000,0.0000,0.0000,9 KB
EfCoreQueryBatchNoChangeTrackingAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,10,509.1 μs,10.30 μs,30.22 μs,1.12,0.08,0.0000,0.0000,0.0000,10 KB
EfCoreQueryBatchRawNoChangeTrackingAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,10,495.6 μs,10.04 μs,29.46 μs,1.11,0.06,0.0000,0.0000,0.0000,13 KB
VenflowQueryBatchAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,10,260.6 μs,7.12 μs,21.00 μs,0.57,0.06,0.0000,0.0000,0.0000,3 KB
VenflowQueryBatchNoChangeTrackingAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,10,268.3 μs,8.91 μs,26.28 μs,0.59,0.06,0.0000,0.0000,0.0000,3 KB
RepoDbQueryBatchAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,10,275.2 μs,7.79 μs,22.97 μs,0.61,0.05,0.0000,0.0000,0.0000,4 KB
DapperQueryBatchAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,10,274.1 μs,7.90 μs,23.30 μs,0.61,0.06,0.0000,0.0000,0.0000,3 KB
EfCoreQueryBatchAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,100,534.3 μs,10.04 μs,24.81 μs,1.00,0.00,0.9766,0.0000,0.0000,32 KB
EfCoreQueryBatchNoChangeTrackingAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,100,565.0 μs,11.15 μs,28.58 μs,1.06,0.07,0.9766,0.0000,0.0000,36 KB
EfCoreQueryBatchRawNoChangeTrackingAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,100,534.2 μs,10.59 μs,24.97 μs,1.00,0.07,0.9766,0.0000,0.0000,39 KB
VenflowQueryBatchAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,100,320.3 μs,8.20 μs,24.06 μs,0.60,0.06,0.4883,0.0000,0.0000,16 KB
VenflowQueryBatchNoChangeTrackingAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,100,320.0 μs,9.11 μs,26.85 μs,0.61,0.06,0.0000,0.0000,0.0000,11 KB
RepoDbQueryBatchAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,100,334.6 μs,7.46 μs,21.75 μs,0.63,0.06,0.4883,0.0000,0.0000,13 KB
DapperQueryBatchAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,100,362.7 μs,8.10 μs,23.88 μs,0.68,0.05,0.0000,0.0000,0.0000,14 KB
EfCoreQueryBatchAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,1000,"1,274.1 μs",25.31 μs,40.14 μs,1.00,0.00,9.7656,0.0000,0.0000,264 KB
EfCoreQueryBatchNoChangeTrackingAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,1000,"1,402.3 μs",27.38 μs,25.61 μs,1.11,0.04,9.7656,1.9531,0.0000,289 KB
EfCoreQueryBatchRawNoChangeTrackingAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,1000,"1,410.4 μs",26.98 μs,33.13 μs,1.12,0.04,9.7656,1.9531,0.0000,292 KB
VenflowQueryBatchAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,1000,927.9 μs,18.45 μs,40.10 μs,0.73,0.04,3.9063,0.0000,0.0000,136 KB
VenflowQueryBatchNoChangeTrackingAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,1000,873.9 μs,17.29 μs,40.08 μs,0.69,0.04,1.9531,0.0000,0.0000,97 KB
RepoDbQueryBatchAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,1000,898.4 μs,17.94 μs,31.88 μs,0.70,0.04,1.9531,0.0000,0.0000,97 KB
DapperQueryBatchAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,1000,"1,226.6 μs",24.14 μs,32.22 μs,0.97,0.04,3.9063,0.0000,0.0000,119 KB
EfCoreQueryBatchAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,10000,"8,206.2 μs",137.77 μs,128.87 μs,1.00,0.00,93.7500,0.0000,0.0000,"2,684 KB"
EfCoreQueryBatchNoChangeTrackingAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,10000,"12,365.0 μs",238.37 μs,283.76 μs,1.52,0.04,125.0000,78.1250,31.2500,"2,920 KB"
EfCoreQueryBatchRawNoChangeTrackingAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,10000,"11,880.5 μs",221.62 μs,217.66 μs,1.45,0.04,125.0000,78.1250,31.2500,"2,923 KB"
VenflowQueryBatchAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,10000,"7,263.5 μs",129.87 μs,121.48 μs,0.89,0.02,46.8750,15.6250,0.0000,"1,430 KB"
VenflowQueryBatchNoChangeTrackingAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,10000,"6,483.1 μs",110.69 μs,135.93 μs,0.79,0.03,39.0625,23.4375,7.8125,"1,040 KB"
RepoDbQueryBatchAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,10000,"6,266.7 μs",119.53 μs,221.55 μs,0.76,0.04,31.2500,15.6250,0.0000,"1,041 KB"
DapperQueryBatchAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,10000,"10,153.4 μs",201.23 μs,178.38 μs,1.24,0.03,31.2500,15.6250,0.0000,"1,274 KB"


================================================
FILE: benchmarks/QueryBatch.md
================================================
``` ini

BenchmarkDotNet=v0.13.0, OS=ubuntu 20.04
Intel Xeon CPU E5-2673 v4 2.30GHz, 1 CPU, 2 logical and 2 physical cores
.NET SDK=6.0.100-preview.7.21379.14
  [Host]   : .NET 6.0.0 (6.0.21.37719), X64 RyuJIT
  .NET 6.0 : .NET 6.0.0 (6.0.21.37719), X64 RyuJIT

Job=.NET 6.0  Runtime=.NET 6.0  

```
|                                   Method | BatchCount |        Mean |     Error |    StdDev | Ratio | RatioSD |    Gen 0 |   Gen 1 |   Gen 2 | Allocated |
|----------------------------------------- |----------- |------------:|----------:|----------:|------:|--------:|---------:|--------:|--------:|----------:|
|                    **EfCoreQueryBatchAsync** |         **10** |    **455.9 μs** |   **9.02 μs** |  **16.49 μs** |  **1.00** |    **0.00** |        **-** |       **-** |       **-** |      **9 KB** |
|    EfCoreQueryBatchNoChangeTrackingAsync |         10 |    509.1 μs |  10.30 μs |  30.22 μs |  1.12 |    0.08 |        - |       - |       - |     10 KB |
| EfCoreQueryBatchRawNoChangeTrackingAsync |         10 |    495.6 μs |  10.04 μs |  29.46 μs |  1.11 |    0.06 |        - |       - |       - |     13 KB |
|                   VenflowQueryBatchAsync |         10 |    260.6 μs |   7.12 μs |  21.00 μs |  0.57 |    0.06 |        - |       - |       - |      3 KB |
|   VenflowQueryBatchNoChangeTrackingAsync |         10 |    268.3 μs |   8.91 μs |  26.28 μs |  0.59 |    0.06 |        - |       - |       - |      3 KB |
|                    RepoDbQueryBatchAsync |         10 |    275.2 μs |   7.79 μs |  22.97 μs |  0.61 |    0.05 |        - |       - |       - |      4 KB |
|                    DapperQueryBatchAsync |         10 |    274.1 μs |   7.90 μs |  23.30 μs |  0.61 |    0.06 |        - |       - |       - |      3 KB |
|                                          |            |             |           |           |       |         |          |         |         |           |
|                    **EfCoreQueryBatchAsync** |        **100** |    **534.3 μs** |  **10.04 μs** |  **24.81 μs** |  **1.00** |    **0.00** |   **0.9766** |       **-** |       **-** |     **32 KB** |
|    EfCoreQueryBatchNoChangeTrackingAsync |        100 |    565.0 μs |  11.15 μs |  28.58 μs |  1.06 |    0.07 |   0.9766 |       - |       - |     36 KB |
| EfCoreQueryBatchRawNoChangeTrackingAsync |        100 |    534.2 μs |  10.59 μs |  24.97 μs |  1.00 |    0.07 |   0.9766 |       - |       - |     39 KB |
|                   VenflowQueryBatchAsync |        100 |    320.3 μs |   8.20 μs |  24.06 μs |  0.60 |    0.06 |   0.4883 |       - |       - |     16 KB |
|   VenflowQueryBatchNoChangeTrackingAsync |        100 |    320.0 μs |   9.11 μs |  26.85 μs |  0.61 |    0.06 |        - |       - |       - |     11 KB |
|                    RepoDbQueryBatchAsync |        100 |    334.6 μs |   7.46 μs |  21.75 μs |  0.63 |    0.06 |   0.4883 |       - |       - |     13 KB |
|                    DapperQueryBatchAsync |        100 |    362.7 μs |   8.10 μs |  23.88 μs |  0.68 |    0.05 |        - |       - |       - |     14 KB |
|                                          |            |             |           |           |       |         |          |         |         |           |
|                    **EfCoreQueryBatchAsync** |       **1000** |  **1,274.1 μs** |  **25.31 μs** |  **40.14 μs** |  **1.00** |    **0.00** |   **9.7656** |       **-** |       **-** |    **264 KB** |
|    EfCoreQueryBatchNoChangeTrackingAsync |       1000 |  1,402.3 μs |  27.38 μs |  25.61 μs |  1.11 |    0.04 |   9.7656 |  1.9531 |       - |    289 KB |
| EfCoreQueryBatchRawNoChangeTrackingAsync |       1000 |  1,410.4 μs |  26.98 μs |  33.13 μs |  1.12 |    0.04 |   9.7656 |  1.9531 |       - |    292 KB |
|                   VenflowQueryBatchAsync |       1000 |    927.9 μs |  18.45 μs |  40.10 μs |  0.73 |    0.04 |   3.9063 |       - |       - |    136 KB |
|   VenflowQueryBatchNoChangeTrackingAsync |       1000 |    873.9 μs |  17.29 μs |  40.08 μs |  0.69 |    0.04 |   1.9531 |       - |       - |     97 KB |
|                    RepoDbQueryBatchAsync |       1000 |    898.4 μs |  17.94 μs |  31.88 μs |  0.70 |    0.04 |   1.9531 |       - |       - |     97 KB |
|                    DapperQueryBatchAsync |       1000 |  1,226.6 μs |  24.14 μs |  32.22 μs |  0.97 |    0.04 |   3.9063 |       - |       - |    119 KB |
|                                          |            |             |           |           |       |         |          |         |         |           |
|                    **EfCoreQueryBatchAsync** |      **10000** |  **8,206.2 μs** | **137.77 μs** | **128.87 μs** |  **1.00** |    **0.00** |  **93.7500** |       **-** |       **-** |  **2,684 KB** |
|    EfCoreQueryBatchNoChangeTrackingAsync |      10000 | 12,365.0 μs | 238.37 μs | 283.76 μs |  1.52 |    0.04 | 125.0000 | 78.1250 | 31.2500 |  2,920 KB |
| EfCoreQueryBatchRawNoChangeTrackingAsync |      10000 | 11,880.5 μs | 221.62 μs | 217.66 μs |  1.45 |    0.04 | 125.0000 | 78.1250 | 31.2500 |  2,923 KB |
|                   VenflowQueryBatchAsync |      10000 |  7,263.5 μs | 129.87 μs | 121.48 μs |  0.89 |    0.02 |  46.8750 | 15.6250 |       - |  1,430 KB |
|   VenflowQueryBatchNoChangeTrackingAsync |      10000 |  6,483.1 μs | 110.69 μs | 135.93 μs |  0.79 |    0.03 |  39.0625 | 23.4375 |  7.8125 |  1,040 KB |
|                    RepoDbQueryBatchAsync |      10000 |  6,266.7 μs | 119.53 μs | 221.55 μs |  0.76 |    0.04 |  31.2500 | 15.6250 |       - |  1,041 KB |
|                    DapperQueryBatchAsync |      10000 | 10,153.4 μs | 201.23 μs | 178.38 μs |  1.24 |    0.03 |  31.2500 | 15.6250 |       - |  1,274 KB |


================================================
FILE: benchmarks/QueryBatchWithRelations.csv
================================================
Method,Job,AnalyzeLaunchVariance,EvaluateOverhead,MaxAbsoluteError,MaxRelativeError,MinInvokeCount,MinIterationTime,OutlierMode,Affinity,EnvironmentVariables,Jit,Platform,PowerPlanMode,Runtime,AllowVeryLargeObjects,Concurrent,CpuGroups,Force,HeapAffinitizeMask,HeapCount,NoAffinitize,RetainVm,Server,Arguments,BuildConfiguration,Clock,EngineFactory,NuGetReferences,Toolchain,IsMutator,InvocationCount,IterationCount,IterationTime,LaunchCount,MaxIterationCount,MaxWarmupIterationCount,MemoryRandomization,MinIterationCount,MinWarmupIterationCount,RunStrategy,UnrollFactor,WarmupCount,BatchCount,Mean,Error,StdDev,Ratio,RatioSD,Gen 0,Gen 1,Gen 2,Allocated
EfCoreQueryBatchAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,10,7.527 ms,0.1476 ms,0.2772 ms,1.00,0.00,0.0000,0.0000,0.0000,42 KB
EfCoreQueryBatchNoChangeTrackingAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,10,8.069 ms,0.1516 ms,0.1344 ms,1.03,0.05,0.0000,0.0000,0.0000,80 KB
VenflowQueryBatchAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,10,7.169 ms,0.1424 ms,0.2972 ms,0.95,0.03,0.0000,0.0000,0.0000,29 KB
VenflowQueryBatchNoChangeTrackingAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,10,7.683 ms,0.1236 ms,0.1156 ms,0.99,0.04,0.0000,0.0000,0.0000,29 KB
RecommendedDapperQueryBatchAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,10,7.124 ms,0.1321 ms,0.1236 ms,0.92,0.05,0.0000,0.0000,0.0000,30 KB
CustomDapperQueryBatchAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,10,7.702 ms,0.1182 ms,0.1047 ms,0.99,0.04,0.0000,0.0000,0.0000,29 KB
EfCoreQueryBatchAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,100,9.112 ms,0.1795 ms,0.3903 ms,1.00,0.00,0.0000,0.0000,0.0000,316 KB
EfCoreQueryBatchNoChangeTrackingAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,100,10.232 ms,0.1659 ms,0.1552 ms,1.06,0.03,15.6250,0.0000,0.0000,687 KB
VenflowQueryBatchAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,100,7.866 ms,0.1553 ms,0.2324 ms,0.85,0.04,0.0000,0.0000,0.0000,228 KB
VenflowQueryBatchNoChangeTrackingAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,100,8.385 ms,0.1493 ms,0.1396 ms,0.87,0.03,0.0000,0.0000,0.0000,224 KB
RecommendedDapperQueryBatchAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,100,8.239 ms,0.1441 ms,0.1348 ms,0.85,0.04,0.0000,0.0000,0.0000,246 KB
CustomDapperQueryBatchAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,100,7.905 ms,0.1509 ms,0.1615 ms,0.83,0.03,0.0000,0.0000,0.0000,236 KB
EfCoreQueryBatchAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,1000,24.513 ms,0.4371 ms,0.6675 ms,1.00,0.00,93.7500,0.0000,0.0000,"3,051 KB"
EfCoreQueryBatchNoChangeTrackingAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,1000,32.363 ms,0.4906 ms,0.4349 ms,1.31,0.04,250.0000,125.0000,0.0000,"6,748 KB"
VenflowQueryBatchAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,1000,14.496 ms,0.2893 ms,0.4589 ms,0.59,0.02,62.5000,31.2500,0.0000,"2,204 KB"
VenflowQueryBatchNoChangeTrackingAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,1000,14.276 ms,0.2556 ms,0.2391 ms,0.58,0.02,62.5000,31.2500,0.0000,"2,167 KB"
RecommendedDapperQueryBatchAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,1000,18.943 ms,0.3583 ms,0.3351 ms,0.77,0.03,62.5000,31.2500,0.0000,"2,392 KB"
CustomDapperQueryBatchAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,1000,19.638 ms,0.3441 ms,0.3682 ms,0.80,0.03,62.5000,31.2500,0.0000,"2,299 KB"
EfCoreQueryBatchAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,10000,183.596 ms,3.6074 ms,4.4302 ms,1.00,0.00,1000.0000,0.0000,0.0000,"30,503 KB"
EfCoreQueryBatchNoChangeTrackingAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,10000,306.043 ms,6.0079 ms,7.5981 ms,1.67,0.06,2500.0000,1000.0000,0.0000,"67,739 KB"
VenflowQueryBatchAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,10000,112.123 ms,2.2261 ms,5.9032 ms,0.58,0.03,600.0000,400.0000,200.0000,"23,702 KB"
VenflowQueryBatchNoChangeTrackingAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,10000,109.985 ms,2.1978 ms,4.6358 ms,0.59,0.04,600.0000,400.0000,200.0000,"23,314 KB"
RecommendedDapperQueryBatchAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,10000,172.813 ms,3.3935 ms,3.7719 ms,0.94,0.04,666.6667,333.3333,0.0000,"26,204 KB"
CustomDapperQueryBatchAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,10000,166.523 ms,3.2761 ms,5.6511 ms,0.91,0.04,666.6667,333.3333,0.0000,"25,329 KB"


================================================
FILE: benchmarks/QueryBatchWithRelations.md
================================================
``` ini

BenchmarkDotNet=v0.13.0, OS=ubuntu 20.04
Intel Xeon CPU E5-2673 v4 2.30GHz, 1 CPU, 2 logical and 2 physical cores
.NET SDK=6.0.100-preview.7.21379.14
  [Host]   : .NET 6.0.0 (6.0.21.37719), X64 RyuJIT
  .NET 6.0 : .NET 6.0.0 (6.0.21.37719), X64 RyuJIT

Job=.NET 6.0  Runtime=.NET 6.0  

```
|                                 Method | BatchCount |       Mean |     Error |    StdDev | Ratio | RatioSD |     Gen 0 |     Gen 1 |    Gen 2 | Allocated |
|--------------------------------------- |----------- |-----------:|----------:|----------:|------:|--------:|----------:|----------:|---------:|----------:|
|                  **EfCoreQueryBatchAsync** |         **10** |   **7.527 ms** | **0.1476 ms** | **0.2772 ms** |  **1.00** |    **0.00** |         **-** |         **-** |        **-** |     **42 KB** |
|  EfCoreQueryBatchNoChangeTrackingAsync |         10 |   8.069 ms | 0.1516 ms | 0.1344 ms |  1.03 |    0.05 |         - |         - |        - |     80 KB |
|                 VenflowQueryBatchAsync |         10 |   7.169 ms | 0.1424 ms | 0.2972 ms |  0.95 |    0.03 |         - |         - |        - |     29 KB |
| VenflowQueryBatchNoChangeTrackingAsync |         10 |   7.683 ms | 0.1236 ms | 0.1156 ms |  0.99 |    0.04 |         - |         - |        - |     29 KB |
|       RecommendedDapperQueryBatchAsync |         10 |   7.124 ms | 0.1321 ms | 0.1236 ms |  0.92 |    0.05 |         - |         - |        - |     30 KB |
|            CustomDapperQueryBatchAsync |         10 |   7.702 ms | 0.1182 ms | 0.1047 ms |  0.99 |    0.04 |         - |         - |        - |     29 KB |
|                                        |            |            |           |           |       |         |           |           |          |           |
|                  **EfCoreQueryBatchAsync** |        **100** |   **9.112 ms** | **0.1795 ms** | **0.3903 ms** |  **1.00** |    **0.00** |         **-** |         **-** |        **-** |    **316 KB** |
|  EfCoreQueryBatchNoChangeTrackingAsync |        100 |  10.232 ms | 0.1659 ms | 0.1552 ms |  1.06 |    0.03 |   15.6250 |         - |        - |    687 KB |
|                 VenflowQueryBatchAsync |        100 |   7.866 ms | 0.1553 ms | 0.2324 ms |  0.85 |    0.04 |         - |         - |        - |    228 KB |
| VenflowQueryBatchNoChangeTrackingAsync |        100 |   8.385 ms | 0.1493 ms | 0.1396 ms |  0.87 |    0.03 |         - |         - |        - |    224 KB |
|       RecommendedDapperQueryBatchAsync |        100 |   8.239 ms | 0.1441 ms | 0.1348 ms |  0.85 |    0.04 |         - |         - |        - |    246 KB |
|            CustomDapperQueryBatchAsync |        100 |   7.905 ms | 0.1509 ms | 0.1615 ms |  0.83 |    0.03 |         - |         - |        - |    236 KB |
|                                        |            |            |           |           |       |         |           |           |          |           |
|                  **EfCoreQueryBatchAsync** |       **1000** |  **24.513 ms** | **0.4371 ms** | **0.6675 ms** |  **1.00** |    **0.00** |   **93.7500** |         **-** |        **-** |  **3,051 KB** |
|  EfCoreQueryBatchNoChangeTrackingAsync |       1000 |  32.363 ms | 0.4906 ms | 0.4349 ms |  1.31 |    0.04 |  250.0000 |  125.0000 |        - |  6,748 KB |
|                 VenflowQueryBatchAsync |       1000 |  14.496 ms | 0.2893 ms | 0.4589 ms |  0.59 |    0.02 |   62.5000 |   31.2500 |        - |  2,204 KB |
| VenflowQueryBatchNoChangeTrackingAsync |       1000 |  14.276 ms | 0.2556 ms | 0.2391 ms |  0.58 |    0.02 |   62.5000 |   31.2500 |        - |  2,167 KB |
|       RecommendedDapperQueryBatchAsync |       1000 |  18.943 ms | 0.3583 ms | 0.3351 ms |  0.77 |    0.03 |   62.5000 |   31.2500 |        - |  2,392 KB |
|            CustomDapperQueryBatchAsync |       1000 |  19.638 ms | 0.3441 ms | 0.3682 ms |  0.80 |    0.03 |   62.5000 |   31.2500 |        - |  2,299 KB |
|                                        |            |            |           |           |       |         |           |           |          |           |
|                  **EfCoreQueryBatchAsync** |      **10000** | **183.596 ms** | **3.6074 ms** | **4.4302 ms** |  **1.00** |    **0.00** | **1000.0000** |         **-** |        **-** | **30,503 KB** |
|  EfCoreQueryBatchNoChangeTrackingAsync |      10000 | 306.043 ms | 6.0079 ms | 7.5981 ms |  1.67 |    0.06 | 2500.0000 | 1000.0000 |        - | 67,739 KB |
|                 VenflowQueryBatchAsync |      10000 | 112.123 ms | 2.2261 ms | 5.9032 ms |  0.58 |    0.03 |  600.0000 |  400.0000 | 200.0000 | 23,702 KB |
| VenflowQueryBatchNoChangeTrackingAsync |      10000 | 109.985 ms | 2.1978 ms | 4.6358 ms |  0.59 |    0.04 |  600.0000 |  400.0000 | 200.0000 | 23,314 KB |
|       RecommendedDapperQueryBatchAsync |      10000 | 172.813 ms | 3.3935 ms | 3.7719 ms |  0.94 |    0.04 |  666.6667 |  333.3333 |        - | 26,204 KB |
|            CustomDapperQueryBatchAsync |      10000 | 166.523 ms | 3.2761 ms | 5.6511 ms |  0.91 |    0.04 |  666.6667 |  333.3333 |        - | 25,329 KB |


================================================
FILE: benchmarks/QuerySingle.csv
================================================
Method,Job,AnalyzeLaunchVariance,EvaluateOverhead,MaxAbsoluteError,MaxRelativeError,MinInvokeCount,MinIterationTime,OutlierMode,Affinity,EnvironmentVariables,Jit,Platform,PowerPlanMode,Runtime,AllowVeryLargeObjects,Concurrent,CpuGroups,Force,HeapAffinitizeMask,HeapCount,NoAffinitize,RetainVm,Server,Arguments,BuildConfiguration,Clock,EngineFactory,NuGetReferences,Toolchain,IsMutator,InvocationCount,IterationCount,IterationTime,LaunchCount,MaxIterationCount,MaxWarmupIterationCount,MemoryRandomization,MinIterationCount,MinWarmupIterationCount,RunStrategy,UnrollFactor,WarmupCount,Mean,Error,StdDev,Ratio,RatioSD,Gen 0,Gen 1,Gen 2,Allocated
EfCoreQuerySingleAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,376.0 μs,7.43 μs,20.48 μs,1.00,0.00,0.0000,0.0000,0.0000,5 KB
EfCoreQuerySingleNoChangeTrackingAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,390.8 μs,8.56 μs,25.25 μs,1.05,0.09,0.0000,0.0000,0.0000,6 KB
EfCoreQuerySingleRawNoChangeTrackingAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,495.5 μs,11.07 μs,32.63 μs,1.32,0.11,0.0000,0.0000,0.0000,11 KB
VenflowQuerySingleAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,243.6 μs,8.44 μs,24.90 μs,0.66,0.08,0.0000,0.0000,0.0000,2 KB
VenflowQuerySingleNoChangeTrackingAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,239.7 μs,7.90 μs,23.30 μs,0.64,0.08,0.0000,0.0000,0.0000,2 KB
RepoDbQuerySingleAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,280.1 μs,5.58 μs,12.13 μs,0.75,0.04,0.0000,0.0000,0.0000,3 KB
DapperQuerySingleAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,242.5 μs,6.73 μs,19.84 μs,0.64,0.07,0.0000,0.0000,0.0000,1 KB


================================================
FILE: benchmarks/QuerySingle.md
================================================
``` ini

BenchmarkDotNet=v0.13.0, OS=ubuntu 20.04
Intel Xeon CPU E5-2673 v4 2.30GHz, 1 CPU, 2 logical and 2 physical cores
.NET SDK=6.0.100-preview.7.21379.14
  [Host]   : .NET 6.0.0 (6.0.21.37719), X64 RyuJIT
  .NET 6.0 : .NET 6.0.0 (6.0.21.37719), X64 RyuJIT

Job=.NET 6.0  Runtime=.NET 6.0  

```
|                                    Method |     Mean |    Error |   StdDev | Ratio | RatioSD | Gen 0 | Gen 1 | Gen 2 | Allocated |
|------------------------------------------ |---------:|---------:|---------:|------:|--------:|------:|------:|------:|----------:|
|                    EfCoreQuerySingleAsync | 376.0 μs |  7.43 μs | 20.48 μs |  1.00 |    0.00 |     - |     - |     - |      5 KB |
|    EfCoreQuerySingleNoChangeTrackingAsync | 390.8 μs |  8.56 μs | 25.25 μs |  1.05 |    0.09 |     - |     - |     - |      6 KB |
| EfCoreQuerySingleRawNoChangeTrackingAsync | 495.5 μs | 11.07 μs | 32.63 μs |  1.32 |    0.11 |     - |     - |     - |     11 KB |
|                   VenflowQuerySingleAsync | 243.6 μs |  8.44 μs | 24.90 μs |  0.66 |    0.08 |     - |     - |     - |      2 KB |
|   VenflowQuerySingleNoChangeTrackingAsync | 239.7 μs |  7.90 μs | 23.30 μs |  0.64 |    0.08 |     - |     - |     - |      2 KB |
|                    RepoDbQuerySingleAsync | 280.1 μs |  5.58 μs | 12.13 μs |  0.75 |    0.04 |     - |     - |     - |      3 KB |
|                    DapperQuerySingleAsync | 242.5 μs |  6.73 μs | 19.84 μs |  0.64 |    0.07 |     - |     - |     - |      1 KB |


================================================
FILE: benchmarks/QuerySingleWithParameter.csv
================================================
Method,Job,AnalyzeLaunchVariance,EvaluateOverhead,MaxAbsoluteError,MaxRelativeError,MinInvokeCount,MinIterationTime,OutlierMode,Affinity,EnvironmentVariables,Jit,Platform,PowerPlanMode,Runtime,AllowVeryLargeObjects,Concurrent,CpuGroups,Force,HeapAffinitizeMask,HeapCount,NoAffinitize,RetainVm,Server,Arguments,BuildConfiguration,Clock,EngineFactory,NuGetReferences,Toolchain,IsMutator,InvocationCount,IterationCount,IterationTime,LaunchCount,MaxIterationCount,MaxWarmupIterationCount,MemoryRandomization,MinIterationCount,MinWarmupIterationCount,RunStrategy,UnrollFactor,WarmupCount,Mean,Error,StdDev,Gen 0,Gen 1,Gen 2,Allocated
VenflowQueryWithParameters,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,260.6 μs,7.14 μs,21.06 μs,0.0000,0.0000,0.0000,2 KB
VenflowQueryWithInterpolation,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,259.7 μs,5.49 μs,16.18 μs,0.0000,0.0000,0.0000,3 KB
VenflowQueryWithConstLambda,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,308.3 μs,9.64 μs,28.26 μs,0.0000,0.0000,0.0000,5 KB
VenflowQueryWithLocalLambda,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,316.3 μs,6.83 μs,20.14 μs,0.0000,0.0000,0.0000,5 KB
VenflowQueryWithFieldLambda,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,305.8 μs,9.54 μs,28.13 μs,0.0000,0.0000,0.0000,5 KB
RepoDbQueryWithParameters,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,279.8 μs,5.55 μs,12.18 μs,0.0000,0.0000,0.0000,2 KB
DapperQueryWithParameters,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,241.3 μs,6.88 μs,20.17 μs,0.0000,0.0000,0.0000,1 KB
DapperQueryWithBag,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,254.5 μs,6.84 μs,20.16 μs,0.0000,0.0000,0.0000,2 KB
EFCoreQueryWithConstLambda,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,440.5 μs,11.50 μs,33.74 μs,0.0000,0.0000,0.0000,7 KB
EFCoreQueryWithLocalLambda,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,526.6 μs,11.70 μs,34.49 μs,0.0000,0.0000,0.0000,7 KB
EFCoreQueryWithFieldLambda,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,490.5 μs,12.21 μs,36.02 μs,0.0000,0.0000,0.0000,7 KB


================================================
FILE: benchmarks/QuerySingleWithParameter.md
================================================
``` ini

BenchmarkDotNet=v0.13.0, OS=ubuntu 20.04
Intel Xeon CPU E5-2673 v4 2.30GHz, 1 CPU, 2 logical and 2 physical cores
.NET SDK=6.0.100-preview.7.21379.14
  [Host]   : .NET 6.0.0 (6.0.21.37719), X64 RyuJIT
  .NET 6.0 : .NET 6.0.0 (6.0.21.37719), X64 RyuJIT

Job=.NET 6.0  Runtime=.NET 6.0  

```
|                        Method |     Mean |    Error |   StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
|------------------------------ |---------:|---------:|---------:|------:|------:|------:|----------:|
|    VenflowQueryWithParameters | 260.6 μs |  7.14 μs | 21.06 μs |     - |     - |     - |      2 KB |
| VenflowQueryWithInterpolation | 259.7 μs |  5.49 μs | 16.18 μs |     - |     - |     - |      3 KB |
|   VenflowQueryWithConstLambda | 308.3 μs |  9.64 μs | 28.26 μs |     - |     - |     - |      5 KB |
|   VenflowQueryWithLocalLambda | 316.3 μs |  6.83 μs | 20.14 μs |     - |     - |     - |      5 KB |
|   VenflowQueryWithFieldLambda | 305.8 μs |  9.54 μs | 28.13 μs |     - |     - |     - |      5 KB |
|     RepoDbQueryWithParameters | 279.8 μs |  5.55 μs | 12.18 μs |     - |     - |     - |      2 KB |
|     DapperQueryWithParameters | 241.3 μs |  6.88 μs | 20.17 μs |     - |     - |     - |      1 KB |
|            DapperQueryWithBag | 254.5 μs |  6.84 μs | 20.16 μs |     - |     - |     - |      2 KB |
|    EFCoreQueryWithConstLambda | 440.5 μs | 11.50 μs | 33.74 μs |     - |     - |     - |      7 KB |
|    EFCoreQueryWithLocalLambda | 526.6 μs | 11.70 μs | 34.49 μs |     - |     - |     - |      7 KB |
|    EFCoreQueryWithFieldLambda | 490.5 μs | 12.21 μs | 36.02 μs |     - |     - |     - |      7 KB |


================================================
FILE: benchmarks/QuerySingleWithRelations.csv
================================================
Method,Job,AnalyzeLaunchVariance,EvaluateOverhead,MaxAbsoluteError,MaxRelativeError,MinInvokeCount,MinIterationTime,OutlierMode,Affinity,EnvironmentVariables,Jit,Platform,PowerPlanMode,Runtime,AllowVeryLargeObjects,Concurrent,CpuGroups,Force,HeapAffinitizeMask,HeapCount,NoAffinitize,RetainVm,Server,Arguments,BuildConfiguration,Clock,EngineFactory,NuGetReferences,Toolchain,IsMutator,InvocationCount,IterationCount,IterationTime,LaunchCount,MaxIterationCount,MaxWarmupIterationCount,MemoryRandomization,MinIterationCount,MinWarmupIterationCount,RunStrategy,UnrollFactor,WarmupCount,Mean,Error,StdDev,Ratio,RatioSD,Gen 0,Gen 1,Gen 2,Allocated
EfCoreQuerySingleAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,7.900 ms,0.1567 ms,0.4155 ms,1.00,0.00,0.0000,0.0000,0.0000,13 KB
EfCoreQuerySingleNoChangeTrackingAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,8.026 ms,0.1575 ms,0.2997 ms,0.98,0.04,0.0000,0.0000,0.0000,17 KB
VenflowQuerySingleAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,7.085 ms,0.1408 ms,0.2466 ms,0.86,0.05,0.0000,0.0000,0.0000,7 KB
VenflowQuerySingleNoChangeTrackingAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,7.814 ms,0.1543 ms,0.2060 ms,0.96,0.05,0.0000,0.0000,0.0000,6 KB
RecommendedDapperQuerySingleAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,7.650 ms,0.1091 ms,0.0911 ms,0.92,0.04,0.0000,0.0000,0.0000,5 KB
CustomDapperQuerySingleAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,7.757 ms,0.1551 ms,0.2017 ms,0.96,0.05,0.0000,0.0000,0.0000,5 KB


================================================
FILE: benchmarks/QuerySingleWithRelations.md
================================================
``` ini

BenchmarkDotNet=v0.13.0, OS=ubuntu 20.04
Intel Xeon CPU E5-2673 v4 2.30GHz, 1 CPU, 2 logical and 2 physical cores
.NET SDK=6.0.100-preview.7.21379.14
  [Host]   : .NET 6.0.0 (6.0.21.37719), X64 RyuJIT
  .NET 6.0 : .NET 6.0.0 (6.0.21.37719), X64 RyuJIT

Job=.NET 6.0  Runtime=.NET 6.0  

```
|                                  Method |     Mean |     Error |    StdDev | Ratio | RatioSD | Gen 0 | Gen 1 | Gen 2 | Allocated |
|---------------------------------------- |---------:|----------:|----------:|------:|--------:|------:|------:|------:|----------:|
|                  EfCoreQuerySingleAsync | 7.900 ms | 0.1567 ms | 0.4155 ms |  1.00 |    0.00 |     - |     - |     - |     13 KB |
|  EfCoreQuerySingleNoChangeTrackingAsync | 8.026 ms | 0.1575 ms | 0.2997 ms |  0.98 |    0.04 |     - |     - |     - |     17 KB |
|                 VenflowQuerySingleAsync | 7.085 ms | 0.1408 ms | 0.2466 ms |  0.86 |    0.05 |     - |     - |     - |      7 KB |
| VenflowQuerySingleNoChangeTrackingAsync | 7.814 ms | 0.1543 ms | 0.2060 ms |  0.96 |    0.05 |     - |     - |     - |      6 KB |
|       RecommendedDapperQuerySingleAsync | 7.650 ms | 0.1091 ms | 0.0911 ms |  0.92 |    0.04 |     - |     - |     - |      5 KB |
|            CustomDapperQuerySingleAsync | 7.757 ms | 0.1551 ms | 0.2017 ms |  0.96 |    0.05 |     - |     - |     - |      5 KB |


================================================
FILE: benchmarks/UpdateBatch.csv
================================================
Method,Job,AnalyzeLaunchVariance,EvaluateOverhead,MaxAbsoluteError,MaxRelativeError,MinInvokeCount,MinIterationTime,OutlierMode,Affinity,EnvironmentVariables,Jit,Platform,PowerPlanMode,Runtime,AllowVeryLargeObjects,Concurrent,CpuGroups,Force,HeapAffinitizeMask,HeapCount,NoAffinitize,RetainVm,Server,Arguments,BuildConfiguration,Clock,EngineFactory,NuGetReferences,Toolchain,IsMutator,InvocationCount,IterationCount,IterationTime,LaunchCount,MaxIterationCount,MaxWarmupIterationCount,MemoryRandomization,MinIterationCount,MinWarmupIterationCount,RunStrategy,UnrollFactor,WarmupCount,BatchCount,Mean,Error,StdDev,Ratio,RatioSD,Gen 0,Gen 1,Gen 2,Allocated
EFCoreUpdateBatchAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,10,"2,047.1 μs",39.84 μs,55.84 μs,1.00,0.00,0.0000,0.0000,0.0000,66 KB
VenflowUpdateBatchAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,10,"1,712.7 μs",27.30 μs,25.54 μs,0.85,0.02,0.0000,0.0000,0.0000,19 KB
RepoDbUpdateBatchAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,10,931.2 μs,18.27 μs,23.11 μs,0.46,0.02,0.0000,0.0000,0.0000,11 KB
EFCoreUpdateBatchAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,100,"10,669.8 μs",210.20 μs,258.14 μs,1.00,0.00,15.6250,0.0000,0.0000,578 KB
VenflowUpdateBatchAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,100,"8,131.2 μs",157.70 μs,147.52 μs,0.76,0.03,0.0000,0.0000,0.0000,171 KB
RepoDbUpdateBatchAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,100,"4,651.1 μs",84.46 μs,133.97 μs,0.44,0.02,0.0000,0.0000,0.0000,91 KB
EFCoreUpdateBatchAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,1000,"96,943.3 μs","1,935.61 μs","1,987.73 μs",1.00,0.00,200.0000,0.0000,0.0000,"5,719 KB"
VenflowUpdateBatchAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,1000,"71,576.6 μs","1,245.41 μs","1,039.97 μs",0.74,0.02,0.0000,0.0000,0.0000,"1,664 KB"
RepoDbUpdateBatchAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,1000,"40,474.3 μs",775.30 μs,"1,251.96 μs",0.42,0.02,0.0000,0.0000,0.0000,882 KB
EFCoreUpdateBatchAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,10000,"1,063,995.3 μs","15,707.91 μs","13,924.66 μs",1.00,0.00,2000.0000,1000.0000,0.0000,"57,290 KB"
VenflowUpdateBatchAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,10000,"776,897.6 μs","14,612.44 μs","12,202.05 μs",0.73,0.01,0.0000,0.0000,0.0000,"16,767 KB"
RepoDbUpdateBatchAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,10000,"623,146.7 μs","12,358.01 μs","23,512.39 μs",0.60,0.03,0.0000,0.0000,0.0000,"8,864 KB"


================================================
FILE: benchmarks/UpdateBatch.md
================================================
``` ini

BenchmarkDotNet=v0.13.0, OS=ubuntu 20.04
Intel Xeon CPU E5-2673 v4 2.30GHz, 1 CPU, 2 logical and 2 physical cores
.NET SDK=6.0.100-preview.7.21379.14
  [Host]   : .NET 6.0.0 (6.0.21.37719), X64 RyuJIT
  .NET 6.0 : .NET 6.0.0 (6.0.21.37719), X64 RyuJIT

Job=.NET 6.0  Runtime=.NET 6.0  

```
|                  Method | BatchCount |           Mean |        Error |       StdDev | Ratio | RatioSD |     Gen 0 |     Gen 1 | Gen 2 | Allocated |
|------------------------ |----------- |---------------:|-------------:|-------------:|------:|--------:|----------:|----------:|------:|----------:|
|  **EFCoreUpdateBatchAsync** |         **10** |     **2,047.1 μs** |     **39.84 μs** |     **55.84 μs** |  **1.00** |    **0.00** |         **-** |         **-** |     **-** |     **66 KB** |
| VenflowUpdateBatchAsync |         10 |     1,712.7 μs |     27.30 μs |     25.54 μs |  0.85 |    0.02 |         - |         - |     - |     19 KB |
|  RepoDbUpdateBatchAsync |         10 |       931.2 μs |     18.27 μs |     23.11 μs |  0.46 |    0.02 |         - |         - |     - |     11 KB |
|                         |            |                |              |              |       |         |           |           |       |           |
|  **EFCoreUpdateBatchAsync** |        **100** |    **10,669.8 μs** |    **210.20 μs** |    **258.14 μs** |  **1.00** |    **0.00** |   **15.6250** |         **-** |     **-** |    **578 KB** |
| VenflowUpdateBatchAsync |        100 |     8,131.2 μs |    157.70 μs |    147.52 μs |  0.76 |    0.03 |         - |         - |     - |    171 KB |
|  RepoDbUpdateBatchAsync |        100 |     4,651.1 μs |     84.46 μs |    133.97 μs |  0.44 |    0.02 |         - |         - |     - |     91 KB |
|                         |            |                |              |              |       |         |           |           |       |           |
|  **EFCoreUpdateBatchAsync** |       **1000** |    **96,943.3 μs** |  **1,935.61 μs** |  **1,987.73 μs** |  **1.00** |    **0.00** |  **200.0000** |         **-** |     **-** |  **5,719 KB** |
| VenflowUpdateBatchAsync |       1000 |    71,576.6 μs |  1,245.41 μs |  1,039.97 μs |  0.74 |    0.02 |         - |         - |     - |  1,664 KB |
|  RepoDbUpdateBatchAsync |       1000 |    40,474.3 μs |    775.30 μs |  1,251.96 μs |  0.42 |    0.02 |         - |         - |     - |    882 KB |
|                         |            |                |              |              |       |         |           |           |       |           |
|  **EFCoreUpdateBatchAsync** |      **10000** | **1,063,995.3 μs** | **15,707.91 μs** | **13,924.66 μs** |  **1.00** |    **0.00** | **2000.0000** | **1000.0000** |     **-** | **57,290 KB** |
| VenflowUpdateBatchAsync |      10000 |   776,897.6 μs | 14,612.44 μs | 12,202.05 μs |  0.73 |    0.01 |         - |         - |     - | 16,767 KB |
|  RepoDbUpdateBatchAsync |      10000 |   623,146.7 μs | 12,358.01 μs | 23,512.39 μs |  0.60 |    0.03 |         - |         - |     - |  8,864 KB |


================================================
FILE: benchmarks/UpdateSingle.csv
================================================
Method,Job,AnalyzeLaunchVariance,EvaluateOverhead,MaxAbsoluteError,MaxRelativeError,MinInvokeCount,MinIterationTime,OutlierMode,Affinity,EnvironmentVariables,Jit,Platform,PowerPlanMode,Runtime,AllowVeryLargeObjects,Concurrent,CpuGroups,Force,HeapAffinitizeMask,HeapCount,NoAffinitize,RetainVm,Server,Arguments,BuildConfiguration,Clock,EngineFactory,NuGetReferences,Toolchain,IsMutator,InvocationCount,IterationCount,IterationTime,LaunchCount,MaxIterationCount,MaxWarmupIterationCount,MemoryRandomization,MinIterationCount,MinWarmupIterationCount,RunStrategy,UnrollFactor,WarmupCount,Mean,Error,StdDev,Ratio,RatioSD,Gen 0,Gen 1,Gen 2,Allocated
EFCoreUpdateSingleAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,"1,022.1 μs",20.24 μs,42.25 μs,1.00,0.00,0.0000,0.0000,0.0000,13 KB
VenflowUpdateSingleAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,815.8 μs,15.98 μs,31.55 μs,0.80,0.04,0.0000,0.0000,0.0000,4 KB
RepoDbUpdateSingleAsync,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,671.5 μs,13.37 μs,37.50 μs,0.66,0.05,0.0000,0.0000,0.0000,7 KB


================================================
FILE: benchmarks/UpdateSingle.md
================================================
``` ini

BenchmarkDotNet=v0.13.0, OS=ubuntu 20.04
Intel Xeon CPU E5-2673 v4 2.30GHz, 1 CPU, 2 logical and 2 physical cores
.NET SDK=6.0.100-preview.7.21379.14
  [Host]   : .NET 6.0.0 (6.0.21.37719), X64 RyuJIT
  .NET 6.0 : .NET 6.0.0 (6.0.21.37719), X64 RyuJIT

Job=.NET 6.0  Runtime=.NET 6.0  

```
|                   Method |       Mean |    Error |   StdDev | Ratio | RatioSD | Gen 0 | Gen 1 | Gen 2 | Allocated |
|------------------------- |-----------:|---------:|---------:|------:|--------:|------:|------:|------:|----------:|
|  EFCoreUpdateSingleAsync | 1,022.1 μs | 20.24 μs | 42.25 μs |  1.00 |    0.00 |     - |     - |     - |     13 KB |
| VenflowUpdateSingleAsync |   815.8 μs | 15.98 μs | 31.55 μs |  0.80 |    0.04 |     - |     - |     - |      4 KB |
|  RepoDbUpdateSingleAsync |   671.5 μs | 13.37 μs | 37.50 μs |  0.66 |    0.05 |     - |     - |     - |      7 KB |


================================================
FILE: docs/api/System.Runtime.CompilerServices.IgnoresAccessChecksToAttribute.html
================================================
<!DOCTYPE html>
<!--[if IE]><![endif]-->
<html>
  
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <title>Class IgnoresAccessChecksToAttribute
   | Venflow Documentation </title>
    <meta name="viewport" content="width=device-width">
    <meta property="og:title" content="Class IgnoresAccessChecksToAttribute
   | Venflow Documentation ">
    
    <meta property="og:locale" content="en-us">
    <meta property="og:type" content="website">
    <meta property="og:site_name" content="Venflow Docs">
    <meta property="og:image" content="">
    <meta property="og:image:alt" content="Venflow Logo">
    <meta name="theme-color" content="#995EA7">
    <meta name="generator" content="docfx 2.56.7.0">
    <meta property="docfx:navrel" content="../toc.html">
    <meta property="docfx:tocrel" content="toc.html">
    <meta id="docfx-style:rel" content="../">
    <link rel="preload" href="../styles/search-worker.js" as="script">
    <link rel="preload" href="../fonts/glyphicons-halflings-regular.woff2" as="font" type="font/woff2" crossorigin="anonymous">
    <link rel="shortcut icon" href="../favicon.ico">
    <link rel="stylesheet" href="../styles/docfx.vendor.minify.css">
    <link rel="stylesheet" href="../styles/docfx.css">
    <link rel="stylesheet" href="../styles/master.css">
    <link rel="stylesheet" href="../styles/main.css">
    <link rel="stylesheet" href="../styles/material.css">
    <link rel="stylesheet" href="../styles/theme-switcher.css">
    <link href="https://cdn.rawgit.com/noelboss/featherlight/1.7.6/release/featherlight.min.css" type="text/css" rel="stylesheet">
    
    <meta property="docfx:rel" content="../">
    
  </head>
  <body data-spy="scroll" data-target="#affix" data-offset="120">
    <div id="wrapper">
      <header>
        
        <nav id="autocollapse" class="navbar navbar-inverse ng-scope" role="navigation">
          <div class="container">
            <div class="navbar-header">
              <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar">
                <span class="sr-only">Toggle navigation</span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
              </button>
              
              <a class="navbar-brand" href="../index.html">
                <img id="logo" class="svg" src="../venflow.svg" alt="">
              </a>
            </div>
            <div class="collapse navbar-collapse" id="navbar">
              <form class="navbar-form navbar-right" role="search" id="search">
                <div class="form-group">
                  <input type="text" class="form-control" id="search-query" placeholder="Search" autocomplete="off">
                </div>
              </form>
            </div>
          </div>
        </nav>
        
        <div class="subnav navbar navbar-default">
          <div class="container hide-when-search" id="breadcrumb">
            <ul class="breadcrumb">
              <li></li>
            </ul>
          </div>
        </div>
      </header>
      <div class="container body-content">
        
        <div id="search-results">
          <div class="search-list">Search Results for <span></span></div>
          <div class="sr-items">
            <p><i class="glyphicon glyphicon-refresh index-loading"></i></p>
          </div>
          <ul id="pagination" data-first="First" data-prev="Previous" data-next="Next" data-last="Last"></ul>
        </div>
      </div>
      <div role="main" class="container body-content hide-when-search">
        
        <div class="sidenav hide-when-search">
          <a class="btn toc-toggle collapse" data-toggle="collapse" href="#sidetoggle" aria-expanded="false" aria-controls="sidetoggle">Show / Hide Table of Contents</a>
          <div class="sidetoggle collapse" id="sidetoggle">
            <div id="sidetoc"></div>
          </div>
        </div>
        <div class="article row grid-right">
          <div class="col-md-10">
            <article class="content wrap" id="_content" data-uid="System.Runtime.CompilerServices.IgnoresAccessChecksToAttribute">
  
  
  <h1 id="System_Runtime_CompilerServices_IgnoresAccessChecksToAttribute" data-uid="System.Runtime.CompilerServices.IgnoresAccessChecksToAttribute" class="text-break">Class IgnoresAccessChecksToAttribute
  </h1>
  <div class="markdown level0 summary"><p><strong>Do not use this attribute, if you are not absolutely sure what it does.</strong></p>
</div>
  <div class="markdown level0 conceptual"></div>
  <div class="inheritance">
    <h5>Inheritance</h5>
    <div class="level0"><a class="xref" href="https://docs.microsoft.com/dotnet/api/system.object">Object</a></div>
    <div class="level1"><span class="xref">IgnoresAccessChecksToAttribute</span></div>
  </div>
  <h6><strong>Namespace</strong>: <a class="xref" href="System.Runtime.CompilerServices.html">System.Runtime.CompilerServices</a></h6>
  <h6><strong>Assembly</strong>: Venflow.dll</h6>
  <h5 id="System_Runtime_CompilerServices_IgnoresAccessChecksToAttribute_syntax">Syntax</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public class IgnoresAccessChecksToAttribute : Attribute</code></pre>
  </div>
  <h3 id="constructors">Constructors
  </h3>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/TwentyFourMinutes/Venflow/new/dev/apiSpec/new?filename=System_Runtime_CompilerServices_IgnoresAccessChecksToAttribute__ctor_System_String_.md&amp;value=---%0Auid%3A%20System.Runtime.CompilerServices.IgnoresAccessChecksToAttribute.%23ctor(System.String)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/TwentyFourMinutes/Venflow/blob/dev/src/Venflow/Dynamic/IgnoresAccessChecksToAttribute.cs/#L13">View Source</a>
  </span>
  <a id="System_Runtime_CompilerServices_IgnoresAccessChecksToAttribute__ctor_" data-uid="System.Runtime.CompilerServices.IgnoresAccessChecksToAttribute.#ctor*"></a>
  <h4 id="System_Runtime_CompilerServices_IgnoresAccessChecksToAttribute__ctor_System_String_" data-uid="System.Runtime.CompilerServices.IgnoresAccessChecksToAttribute.#ctor(System.String)">IgnoresAccessChecksToAttribute(String)</h4>
  <div class="markdown level1 summary"></div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public IgnoresAccessChecksToAttribute(string assemblyName)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><a class="xref" href="https://docs.microsoft.com/dotnet/api/system.string">String</a></td>
        <td><span class="parametername">assemblyName</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h3 id="properties">Properties
  </h3>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/TwentyFourMinutes/Venflow/new/dev/apiSpec/new?filename=System_Runtime_CompilerServices_IgnoresAccessChecksToAttribute_AssemblyName.md&amp;value=---%0Auid%3A%20System.Runtime.CompilerServices.IgnoresAccessChecksToAttribute.AssemblyName%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/TwentyFourMinutes/Venflow/blob/dev/src/Venflow/Dynamic/IgnoresAccessChecksToAttribute.cs/#L16">View Source</a>
  </span>
  <a id="System_Runtime_CompilerServices_IgnoresAccessChecksToAttribute_AssemblyName_" data-uid="System.Runtime.CompilerServices.IgnoresAccessChecksToAttribute.AssemblyName*"></a>
  <h4 id="System_Runtime_CompilerServices_IgnoresAccessChecksToAttribute_AssemblyName" data-uid="System.Runtime.CompilerServices.IgnoresAccessChecksToAttribute.AssemblyName">AssemblyName</h4>
  <div class="markdown level1 summary"></div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public string AssemblyName { get; }</code></pre>
  </div>
  <h5 class="propertyValue">Property Value</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><a class="xref" href="https://docs.microsoft.com/dotnet/api/system.string">String</a></td>
        <td></td>
      </tr>
    </tbody>
  </table>
</article>
          </div>
          
          <div class="hidden-sm col-md-2" role="complementary">
            <div class="sideaffix">
              <div class="theme-switch-field">
                <p>Theme</p>
                <select id="theme-switcher">
                  <option value="dark">Dark
                  <option value="gray">Gray
                  <option value="light">Light
                </select>
              </div>
              <div class="contribution">
                <ul class="nav">
                  <li>
                    <a href="https://github.com/TwentyFourMinutes/Venflow/new/dev/apiSpec/new?filename=System_Runtime_CompilerServices_IgnoresAccessChecksToAttribute.md&amp;value=---%0Auid%3A%20System.Runtime.CompilerServices.IgnoresAccessChecksToAttribute%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A" class="contribution-link">Improve this Doc</a>
                  </li>
                  <li>
                    <a href="https://github.com/TwentyFourMinutes/Venflow/blob/dev/src/Venflow/Dynamic/IgnoresAccessChecksToAttribute.cs/#L8" class="contribution-link">View Source</a>
                  </li>
                </ul>
              </div>
              <nav class="bs-docs-sidebar hidden-print hidden-xs hidden-sm affix" id="affix">
              <!-- <p><a class="back-to-top" href="#top">Back to top</a><p> -->
              </nav>
            </div>
          </div>
        </div>
      </div>
      
      <footer>
        <div class="grad-bottom"></div>
        <div class="footer">
          <div class="container">
            <span class="pull-right">
              <a href="#top">Back to top</a>
            </span>
            <span>Copyright © 2021 Twenty</span>
            
          </div>
        </div>
      </footer>
    </div>
    
    <script type="text/javascript" src="../styles/docfx.vendor.js"></script>
    <script type="text/javascript" src="../styles/docfx.js"></script>
    <script type="text/javascript" src="../styles/main.js"></script>
    <script type="text/javascript" src="../styles/styleswitcher.js"></script>  </body>
</html>


================================================
FILE: docs/api/System.Runtime.CompilerServices.NullableAttribute.html
================================================
<!DOCTYPE html>
<!--[if IE]><![endif]-->
<html>
  
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <title>Class NullableAttribute
   | Venflow Documentation </title>
    <meta name="viewport" content="width=device-width">
    <meta property="og:title" content="Class NullableAttribute
   | Venflow Documentation ">
    
    <meta property="og:locale" content="en-us">
    <meta property="og:type" content="website">
    <meta property="og:site_name" content="Venflow Docs">
    <meta property="og:image" content="">
    <meta property="og:image:alt" content="Venflow Logo">
    <meta name="theme-color" content="#995EA7">
    <meta name="generator" content="docfx 2.56.7.0">
    <meta property="docfx:navrel" content="../toc.html">
    <meta property="docfx:tocrel" content="toc.html">
    <meta id="docfx-style:rel" content="../">
    <link rel="preload" href="../styles/search-worker.js" as="script">
    <link rel="preload" href="../fonts/glyphicons-halflings-regular.woff2" as="font" type="font/woff2" crossorigin="anonymous">
    <link rel="shortcut icon" href="../favicon.ico">
    <link rel="stylesheet" href="../styles/docfx.vendor.minify.css">
    <link rel="stylesheet" href="../styles/docfx.css">
    <link rel="stylesheet" href="../styles/master.css">
    <link rel="stylesheet" href="../styles/main.css">
    <link rel="stylesheet" href="../styles/material.css">
    <link rel="stylesheet" href="../styles/theme-switcher.css">
    <link href="https://cdn.rawgit.com/noelboss/featherlight/1.7.6/release/featherlight.min.css" type="text/css" rel="stylesheet">
    
    <meta property="docfx:rel" content="../">
    
  </head>
  <body data-spy="scroll" data-target="#affix" data-offset="120">
    <div id="wrapper">
      <header>
        
        <nav id="autocollapse" class="navbar navbar-inverse ng-scope" role="navigation">
          <div class="container">
            <div class="navbar-header">
              <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar">
                <span class="sr-only">Toggle navigation</span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
              </button>
              
              <a class="navbar-brand" href="../index.html">
                <img id="logo" class="svg" src="../venflow.svg" alt="">
              </a>
            </div>
            <div class="collapse navbar-collapse" id="navbar">
              <form class="navbar-form navbar-right" role="search" id="search">
                <div class="form-group">
                  <input type="text" class="form-control" id="search-query" placeholder="Search" autocomplete="off">
                </div>
              </form>
            </div>
          </div>
        </nav>
        
        <div class="subnav navbar navbar-default">
          <div class="container hide-when-search" id="breadcrumb">
            <ul class="breadcrumb">
              <li></li>
            </ul>
          </div>
        </div>
      </header>
      <div class="container body-content">
        
        <div id="search-results">
          <div class="search-list">Search Results for <span></span></div>
          <div class="sr-items">
            <p><i class="glyphicon glyphicon-refresh index-loading"></i></p>
          </div>
          <ul id="pagination" data-first="First" data-prev="Previous" data-next="Next" data-last="Last"></ul>
        </div>
      </div>
      <div role="main" class="container body-content hide-when-search">
        
        <div class="sidenav hide-when-search">
          <a class="btn toc-toggle collapse" data-toggle="collapse" href="#sidetoggle" aria-expanded="false" aria-controls="sidetoggle">Show / Hide Table of Contents</a>
          <div class="sidetoggle collapse" id="sidetoggle">
            <div id="sidetoc"></div>
          </div>
        </div>
        <div class="article row grid-right">
          <div class="col-md-10">
            <article class="content wrap" id="_content" data-uid="System.Runtime.CompilerServices.NullableAttribute">
  
  
  <h1 id="System_Runtime_CompilerServices_NullableAttribute" data-uid="System.Runtime.CompilerServices.NullableAttribute" class="text-break">Class NullableAttribute
  </h1>
  <div class="markdown level0 summary"><p><strong>Do not use this attribute, it is reserved for the compiler.</strong></p>
</div>
  <div class="markdown level0 conceptual"></div>
  <div class="inheritance">
    <h5>Inheritance</h5>
    <div class="level0"><a class="xref" href="https://docs.microsoft.com/dotnet/api/system.object">Object</a></div>
    <div class="level1"><span class="xref">NullableAttribute</span></div>
  </div>
  <h6><strong>Namespace</strong>: <a class="xref" href="System.Runtime.CompilerServices.html">System.Runtime.CompilerServices</a></h6>
  <h6><strong>Assembly</strong>: Venflow.dll</h6>
  <h5 id="System_Runtime_CompilerServices_NullableAttribute_syntax">Syntax</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public sealed class NullableAttribute : Attribute</code></pre>
  </div>
  <h3 id="constructors">Constructors
  </h3>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/TwentyFourMinutes/Venflow/new/dev/apiSpec/new?filename=System_Runtime_CompilerServices_NullableAttribute__ctor_System_Byte_.md&amp;value=---%0Auid%3A%20System.Runtime.CompilerServices.NullableAttribute.%23ctor(System.Byte)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/TwentyFourMinutes/Venflow/blob/dev/src/Venflow/Dynamic/NullableAttribute.cs/#L15">View Source</a>
  </span>
  <a id="System_Runtime_Compile
Download .txt
gitextract_1065j4ob/

├── .editorconfig
├── .gitattributes
├── .github/
│   ├── FUNDING.yml
│   ├── ISSUE_TEMPLATE/
│   │   ├── ---bug-report.md
│   │   ├── ---feature request.md
│   │   └── config.yml
│   ├── dependabot.yml
│   └── workflows/
│       ├── benchmarks.yml
│       ├── build.yml
│       ├── cla.yml
│       ├── codeql-analysis.yml
│       ├── devskim-analysis.yml
│       ├── publish.yml
│       ├── securitycodescan-analysis.yml
│       └── shiftleft-analysis.yml
├── .gitignore
├── CLA.md
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── Directory.Build.props
├── LICENSE
├── README.md
├── SECURITY.md
├── Venflow.sln
├── Venflow.snk
├── benchmarks/
│   ├── DeleteBatch.csv
│   ├── DeleteBatch.md
│   ├── DeleteSingle.csv
│   ├── DeleteSingle.md
│   ├── InsertBatch.csv
│   ├── InsertBatch.md
│   ├── InsertBatchWithRelations.csv
│   ├── InsertBatchWithRelations.md
│   ├── InsertSingle.csv
│   ├── InsertSingle.md
│   ├── InsertSingleWithRelations.csv
│   ├── InsertSingleWithRelations.md
│   ├── Instantiation.csv
│   ├── Instantiation.md
│   ├── QueryBatch.csv
│   ├── QueryBatch.md
│   ├── QueryBatchWithRelations.csv
│   ├── QueryBatchWithRelations.md
│   ├── QuerySingle.csv
│   ├── QuerySingle.md
│   ├── QuerySingleWithParameter.csv
│   ├── QuerySingleWithParameter.md
│   ├── QuerySingleWithRelations.csv
│   ├── QuerySingleWithRelations.md
│   ├── UpdateBatch.csv
│   ├── UpdateBatch.md
│   ├── UpdateSingle.csv
│   └── UpdateSingle.md
├── docs/
│   ├── api/
│   │   ├── System.Runtime.CompilerServices.IgnoresAccessChecksToAttribute.html
│   │   ├── System.Runtime.CompilerServices.NullableAttribute.html
│   │   ├── System.Runtime.CompilerServices.NullableContextAttribute.html
│   │   ├── System.Runtime.CompilerServices.html
│   │   ├── Venflow.AspNetCore.VenflowServiceCollectionExtensions.html
│   │   ├── Venflow.AspNetCore.html
│   │   ├── Venflow.Commands.IBaseInsertRelationBuilder-2.html
│   │   ├── Venflow.Commands.IBaseQueryRelationBuilder-3.html
│   │   ├── Venflow.Commands.IDeleteCommand-1.html
│   │   ├── Venflow.Commands.IDeleteCommandBuilder-1.html
│   │   ├── Venflow.Commands.IInsertCommand-1.html
│   │   ├── Venflow.Commands.IInsertCommandBuilder-1.html
│   │   ├── Venflow.Commands.IInsertRelationBuilder-2.html
│   │   ├── Venflow.Commands.IPreCommandBuilder-2.html
│   │   ├── Venflow.Commands.IQueryCommand-2.html
│   │   ├── Venflow.Commands.IQueryCommandBuilder-2.html
│   │   ├── Venflow.Commands.IQueryRelationBuilder-3.html
│   │   ├── Venflow.Commands.ISpecficVenflowCommandBuilder-2.html
│   │   ├── Venflow.Commands.IUpdateCommand-1.html
│   │   ├── Venflow.Commands.IUpdateCommandBuilder-1.html
│   │   ├── Venflow.Commands.IVenflowCommand-1.html
│   │   ├── Venflow.Commands.IVenflowCommandBuilder-1.html
│   │   ├── Venflow.Commands.html
│   │   ├── Venflow.Database.html
│   │   ├── Venflow.DatabaseConfigurationOptionsBuilder.html
│   │   ├── Venflow.DatabaseOptionsBuilder-1.html
│   │   ├── Venflow.Enums.CommandType.html
│   │   ├── Venflow.Enums.ForeignTruncateOptions.html
│   │   ├── Venflow.Enums.IdentityTruncateOptions.html
│   │   ├── Venflow.Enums.JoinBehaviour.html
│   │   ├── Venflow.Enums.LoggingBehavior.html
│   │   ├── Venflow.Enums.html
│   │   ├── Venflow.Extensions.Logging.DatabaseOptionsBuilderExtensions.html
│   │   ├── Venflow.Extensions.Logging.html
│   │   ├── Venflow.FormattableSqlStringBuilder.html
│   │   ├── Venflow.IDatabaseTransaction.html
│   │   ├── Venflow.IKey-2.html
│   │   ├── Venflow.IKey.html
│   │   ├── Venflow.IParameterTypeHandler.html
│   │   ├── Venflow.InvalidEntityRelationException.html
│   │   ├── Venflow.Json.JsonKeyConverterFactory.html
│   │   ├── Venflow.Json.html
│   │   ├── Venflow.Key-2.html
│   │   ├── Venflow.KeyConverter.html
│   │   ├── Venflow.LoggerCallback.html
│   │   ├── Venflow.Modeling.Definitions.Builder.IEntityBuilder-1.html
│   │   ├── Venflow.Modeling.Definitions.Builder.IForeignKeyRelationBuilder-2.html
│   │   ├── Venflow.Modeling.Definitions.Builder.ILeftRelationBuilder-1.html
│   │   ├── Venflow.Modeling.Definitions.Builder.IMultiRightRelationBuilder-2.html
│   │   ├── Venflow.Modeling.Definitions.Builder.INotRequiredMultiRightRelationBuilder-2.html
│   │   ├── Venflow.Modeling.Definitions.Builder.INotRequiredSingleRightRelationBuilder-2.html
│   │   ├── Venflow.Modeling.Definitions.Builder.IPropertyBuilder.html
│   │   ├── Venflow.Modeling.Definitions.Builder.IRequiredMultiRightRelationBuilder-2.html
│   │   ├── Venflow.Modeling.Definitions.Builder.IRequiredSingleRightRelationBuilder-2.html
│   │   ├── Venflow.Modeling.Definitions.Builder.html
│   │   ├── Venflow.Modeling.Definitions.EntityConfiguration-1.html
│   │   ├── Venflow.Modeling.Definitions.html
│   │   ├── Venflow.NewtonsoftJson.NewtonsoftJsonKeyConverter.html
│   │   ├── Venflow.NewtonsoftJson.html
│   │   ├── Venflow.NpgsqlCommandExtensions.html
│   │   ├── Venflow.NpgsqlQuotedNameTranslator.html
│   │   ├── Venflow.ParameterTypeHandler.html
│   │   ├── Venflow.Table-1.html
│   │   ├── Venflow.TableBase-1.html
│   │   ├── Venflow.TypeArgumentException.html
│   │   ├── Venflow.VenflowConfiguration.html
│   │   ├── Venflow.VenflowDbType.html
│   │   ├── Venflow.html
│   │   ├── index.html
│   │   └── toc.html
│   ├── docfx/
│   │   ├── .gitignore
│   │   ├── api/
│   │   │   ├── .gitignore
│   │   │   ├── System.Runtime.CompilerServices.IgnoresAccessChecksToAttribute.html
│   │   │   ├── System.Runtime.CompilerServices.NullableAttribute.html
│   │   │   ├── System.Runtime.CompilerServices.NullableContextAttribute.html
│   │   │   ├── System.Runtime.CompilerServices.html
│   │   │   ├── Venflow.AspNetCore.VenflowServiceCollectionExtensions.html
│   │   │   ├── Venflow.AspNetCore.html
│   │   │   ├── Venflow.Commands.IBaseInsertRelationBuilder-2.html
│   │   │   ├── Venflow.Commands.IBaseQueryRelationBuilder-3.html
│   │   │   ├── Venflow.Commands.IDeleteCommand-1.html
│   │   │   ├── Venflow.Commands.IDeleteCommandBuilder-1.html
│   │   │   ├── Venflow.Commands.IInsertCommand-1.html
│   │   │   ├── Venflow.Commands.IInsertCommandBuilder-1.html
│   │   │   ├── Venflow.Commands.IInsertRelationBuilder-2.html
│   │   │   ├── Venflow.Commands.IPreCommandBuilder-2.html
│   │   │   ├── Venflow.Commands.IQueryCommand-2.html
│   │   │   ├── Venflow.Commands.IQueryCommandBuilder-2.html
│   │   │   ├── Venflow.Commands.IQueryRelationBuilder-3.html
│   │   │   ├── Venflow.Commands.ISpecficVenflowCommandBuilder-2.html
│   │   │   ├── Venflow.Commands.IUpdateCommand-1.html
│   │   │   ├── Venflow.Commands.IUpdateCommandBuilder-1.html
│   │   │   ├── Venflow.Commands.IVenflowCommand-1.html
│   │   │   ├── Venflow.Commands.IVenflowCommandBuilder-1.html
│   │   │   ├── Venflow.Commands.html
│   │   │   ├── Venflow.Database.html
│   │   │   ├── Venflow.DatabaseConfigurationOptionsBuilder.html
│   │   │   ├── Venflow.DatabaseOptionsBuilder-1.html
│   │   │   ├── Venflow.DatabaseOptionsBuilder.html
│   │   │   ├── Venflow.Enums.CommandType.html
│   │   │   ├── Venflow.Enums.ForeignTruncateOptions.html
│   │   │   ├── Venflow.Enums.IdentityTruncateOptions.html
│   │   │   ├── Venflow.Enums.JoinBehaviour.html
│   │   │   ├── Venflow.Enums.LoggingBehavior.html
│   │   │   ├── Venflow.Enums.html
│   │   │   ├── Venflow.Extensions.Logging.DatabaseOptionsBuilderExtensions.html
│   │   │   ├── Venflow.Extensions.Logging.html
│   │   │   ├── Venflow.FormattableSqlStringBuilder.html
│   │   │   ├── Venflow.IDatabaseTransaction.html
│   │   │   ├── Venflow.IKey-2.html
│   │   │   ├── Venflow.IKey.html
│   │   │   ├── Venflow.IParameterTypeHandler.html
│   │   │   ├── Venflow.InvalidEntityRelationException.html
│   │   │   ├── Venflow.Json.JsonKeyConverterFacotry.html
│   │   │   ├── Venflow.Json.JsonKeyConverterFactory.html
│   │   │   ├── Venflow.Json.html
│   │   │   ├── Venflow.Key-2.html
│   │   │   ├── Venflow.KeyConverter.html
│   │   │   ├── Venflow.LoggerCallback.html
│   │   │   ├── Venflow.Modeling.Definitions.Builder.IForeignKeyRelationBuilder-2.html
│   │   │   ├── Venflow.Modeling.Definitions.Builder.ILeftRelationBuilder-1.html
│   │   │   ├── Venflow.Modeling.Definitions.Builder.IMultiRightRelationBuilder-2.html
│   │   │   ├── Venflow.Modeling.Definitions.Builder.INotRequiredMultiRightRelationBuilder-2.html
│   │   │   ├── Venflow.Modeling.Definitions.Builder.INotRequiredSingleRightRelationBuilder-2.html
│   │   │   ├── Venflow.Modeling.Definitions.Builder.IRequiredMultiRightRelationBuilder-2.html
│   │   │   ├── Venflow.Modeling.Definitions.Builder.IRequiredSingleRightRelationBuilder-2.html
│   │   │   ├── Venflow.Modeling.Definitions.Builder.html
│   │   │   ├── Venflow.Modeling.Definitions.EntityConfiguration-1.html
│   │   │   ├── Venflow.Modeling.Definitions.html
│   │   │   ├── Venflow.NewtonsoftJson.NewtonsoftJsonKeyConverter.html
│   │   │   ├── Venflow.NewtonsoftJson.html
│   │   │   ├── Venflow.NpgsqlCommandExtensions.html
│   │   │   ├── Venflow.ParameterTypeHandler.html
│   │   │   ├── Venflow.Table-1.html
│   │   │   ├── Venflow.TableBase-1.html
│   │   │   ├── Venflow.Tests.Keys.Key-1.html
│   │   │   ├── Venflow.Tests.Keys.html
│   │   │   ├── Venflow.TypeArgumentException.html
│   │   │   ├── Venflow.VenflowConfiguration.html
│   │   │   ├── Venflow.html
│   │   │   ├── index.html
│   │   │   ├── index.md
│   │   │   └── toc.html
│   │   ├── docfx.json
│   │   ├── filterConfig.yml
│   │   ├── guides/
│   │   │   ├── advanced/
│   │   │   │   ├── aspnetcore.md
│   │   │   │   ├── enums.md
│   │   │   │   ├── interpolation.md
│   │   │   │   ├── logging.md
│   │   │   │   ├── logging_extensions.md
│   │   │   │   ├── nullables.md
│   │   │   │   ├── prepared_statements.md
│   │   │   │   ├── query_command_cache.md
│   │   │   │   ├── strong_key.md
│   │   │   │   └── validation.md
│   │   │   ├── getting_started/
│   │   │   │   ├── installation.md
│   │   │   │   └── setup.md
│   │   │   ├── introduction/
│   │   │   │   └── intro.md
│   │   │   ├── operations/
│   │   │   │   ├── count.md
│   │   │   │   ├── delete.md
│   │   │   │   ├── execute.md
│   │   │   │   ├── insert.md
│   │   │   │   ├── query.md
│   │   │   │   ├── truncate.md
│   │   │   │   └── update.md
│   │   │   └── toc.yml
│   │   ├── index.json
│   │   ├── index.md
│   │   ├── search-stopwords.json
│   │   ├── styles/
│   │   │   ├── dark.css
│   │   │   ├── docfx.css
│   │   │   ├── docfx.js
│   │   │   ├── docfx.vendor.css
│   │   │   ├── docfx.vendor.js
│   │   │   ├── docfx.vendor.minify.css
│   │   │   ├── gray.css
│   │   │   ├── light.css
│   │   │   ├── lunr.js
│   │   │   ├── main.css
│   │   │   ├── main.js
│   │   │   ├── master.css
│   │   │   ├── material.css
│   │   │   ├── search-worker.js
│   │   │   ├── styleswitcher.js
│   │   │   ├── theme-switcher.css
│   │   │   ├── tomorrow.css
│   │   │   └── vs2015.css
│   │   ├── templates/
│   │   │   └── light-dark-theme/
│   │   │       ├── README.md
│   │   │       ├── discord.net-license.md
│   │   │       ├── docfx-material-license.md
│   │   │       ├── partials/
│   │   │       │   ├── affix.tmpl.partial
│   │   │       │   ├── head.tmpl.partial
│   │   │       │   └── scripts.tmpl.partial
│   │   │       └── styles/
│   │   │           ├── dark.css
│   │   │           ├── docfx.vendor.minify.css
│   │   │           ├── gray.css
│   │   │           ├── light.css
│   │   │           ├── master.css
│   │   │           ├── material.css
│   │   │           ├── styleswitcher.js
│   │   │           ├── theme-switcher.css
│   │   │           ├── tomorrow.css
│   │   │           └── vs2015.css
│   │   ├── toc.yml
│   │   └── xrefmap.yml
│   ├── guides/
│   │   ├── advanced/
│   │   │   ├── aspnetcore.html
│   │   │   ├── enums.html
│   │   │   ├── interpolation.html
│   │   │   ├── logging.html
│   │   │   ├── logging_extensions.html
│   │   │   ├── nullables.html
│   │   │   ├── prepared_statements.html
│   │   │   ├── query_command_cache.html
│   │   │   ├── strong_key.html
│   │   │   └── validation.html
│   │   ├── getting_started/
│   │   │   ├── installation.html
│   │   │   └── setup.html
│   │   ├── introduction/
│   │   │   └── intro.html
│   │   ├── operations/
│   │   │   ├── count.html
│   │   │   ├── delete.html
│   │   │   ├── execute.html
│   │   │   ├── insert.html
│   │   │   ├── query.html
│   │   │   ├── truncate.html
│   │   │   └── update.html
│   │   └── toc.html
│   ├── index.html
│   ├── index.json
│   ├── manifest.json
│   ├── search-stopwords.json
│   ├── styles/
│   │   ├── dark.css
│   │   ├── docfx.css
│   │   ├── docfx.js
│   │   ├── docfx.vendor.css
│   │   ├── docfx.vendor.js
│   │   ├── docfx.vendor.minify.css
│   │   ├── gray.css
│   │   ├── light.css
│   │   ├── lunr.js
│   │   ├── main.css
│   │   ├── main.js
│   │   ├── master.css
│   │   ├── material.css
│   │   ├── search-worker.js
│   │   ├── styleswitcher.js
│   │   ├── theme-switcher.css
│   │   ├── tomorrow.css
│   │   └── vs2015.css
│   ├── toc.html
│   └── xrefmap.yml
├── signatures/
│   └── version1/
│       └── cla.json
├── src/
│   ├── Venflow/
│   │   ├── CastTypeHandler.cs
│   │   ├── Commands/
│   │   │   ├── IBaseInsertRelationBuilder.cs
│   │   │   ├── IBaseQueryRelationBuilder.cs
│   │   │   ├── IDeleteCommand.cs
│   │   │   ├── IDeleteCommandBuilder.cs
│   │   │   ├── IInsertCommand.cs
│   │   │   ├── IInsertCommandBuilder.cs
│   │   │   ├── IInsertRelationBuilder.cs
│   │   │   ├── IPreCommandBuilder.cs
│   │   │   ├── IQueryCommand.cs
│   │   │   ├── IQueryCommandBuilder.cs
│   │   │   ├── IQueryRelationBuilder.cs
│   │   │   ├── ISpecficVenflowCommandBuilder.cs
│   │   │   ├── IUpdateCommand.cs
│   │   │   ├── IUpdateCommandBuilder.cs
│   │   │   ├── IVenflowCommand.cs
│   │   │   ├── IVenflowCommandBuilder.cs
│   │   │   ├── InsertCacheKey.cs
│   │   │   ├── InsertCacheKeyComparer.cs
│   │   │   ├── InsertRelationBuilder.cs
│   │   │   ├── InterpolatedSqlExpressionConverter.cs
│   │   │   ├── QueryCacheKey.cs
│   │   │   ├── QueryCacheKeyComparer.cs
│   │   │   ├── QueryRelationBuilder.cs
│   │   │   ├── RelationBuilderValues.cs
│   │   │   ├── RelationPath.cs
│   │   │   ├── SqlQueryCacheKey.cs
│   │   │   ├── SqlQueryCacheKeyComparer.cs
│   │   │   ├── VenflowBaseCommand.cs
│   │   │   ├── VenflowCommandBuilder.cs
│   │   │   ├── VenflowDeleteCommand.cs
│   │   │   ├── VenflowDeleteCommandBuilder.cs
│   │   │   ├── VenflowInsertCommand.cs
│   │   │   ├── VenflowInsertCommandBuilder.cs
│   │   │   ├── VenflowQueryCommand.cs
│   │   │   ├── VenflowQueryCommandBuilder.cs
│   │   │   ├── VenflowUpdateCommand.cs
│   │   │   └── VenflowUpdateCommandBuilder.cs
│   │   ├── Database.cs
│   │   ├── DatabaseConfiguration.cs
│   │   ├── DatabaseConfigurationOptionsBuilder.cs
│   │   ├── DatabaseOptionsBuilder.cs
│   │   ├── DatabaseTransaction.cs
│   │   ├── DualKeyCollection.cs
│   │   ├── Dynamic/
│   │   │   ├── IL/
│   │   │   │   ├── IILBaseInst.cs
│   │   │   │   ├── ILAsyncGenerator.cs
│   │   │   │   ├── ILFieldInfo.cs
│   │   │   │   ├── ILGeneratorExtensions.cs
│   │   │   │   ├── ILGhostGenerator.cs
│   │   │   │   ├── ILInst.cs
│   │   │   │   └── ILSwitchBuilder.cs
│   │   │   ├── IgnoresAccessChecksToAttribute.cs
│   │   │   ├── Inserter/
│   │   │   │   ├── EntityRelationHolder.cs
│   │   │   │   ├── InsertionFactory.cs
│   │   │   │   ├── InsertionFactoryCompiler.cs
│   │   │   │   └── InsertionSourceCompiler.cs
│   │   │   ├── Instantiater/
│   │   │   │   └── DatabaseTableFactory.cs
│   │   │   ├── Materializer/
│   │   │   │   ├── MaterializerFactory.cs
│   │   │   │   ├── MaterializerFactoryCompiler.cs
│   │   │   │   ├── MaterializerSourceCompiler.cs
│   │   │   │   ├── QueryEntityHolder.cs
│   │   │   │   └── SqlExpression.cs
│   │   │   ├── NullableAttribute.cs
│   │   │   ├── NullableContextAttribute.cs
│   │   │   ├── Proxies/
│   │   │   │   ├── ChangeTracker.cs
│   │   │   │   ├── ChangeTrackerFactory.cs
│   │   │   │   └── IEntityProxy.cs
│   │   │   ├── Retriever/
│   │   │   │   └── ValueRetrieverFactory.cs
│   │   │   ├── SpanExtensions.cs
│   │   │   └── TypeFactory.cs
│   │   ├── Enums/
│   │   │   ├── ColumnListStringOptions.cs
│   │   │   ├── ColumnOptions.cs
│   │   │   ├── CommandType.cs
│   │   │   ├── ForeignKeyLoaction.cs
│   │   │   ├── ForeignTruncateOptions.cs
│   │   │   ├── IdentityTruncateOptions.cs
│   │   │   ├── InsertCacheKeyOptions.cs
│   │   │   ├── JoinBehaviour.cs
│   │   │   ├── LoggingBehaviour.cs
│   │   │   ├── QueryGenerationOptions.cs
│   │   │   ├── RelationPartType.cs
│   │   │   ├── RelationType.cs
│   │   │   └── SqlExpressionOptions.cs
│   │   ├── FodyWeavers.xml
│   │   ├── FodyWeavers.xsd
│   │   ├── FormattableSqlStringBuilder.cs
│   │   ├── IParameterTypeHandler.cs
│   │   ├── InvalidEntityRelationException.cs
│   │   ├── Modeling/
│   │   │   ├── DatabaseConfigurationFactory.cs
│   │   │   ├── Definitions/
│   │   │   │   ├── Builder/
│   │   │   │   │   ├── EntityBuilder.cs
│   │   │   │   │   ├── IForeignKeyRelationBuilder.cs
│   │   │   │   │   ├── ILeftRelationBuilder.cs
│   │   │   │   │   ├── IMultiRightRelationBuilder.cs
│   │   │   │   │   ├── INotRequiredMultiRightRelationBuilder.cs
│   │   │   │   │   ├── INotRequiredSingleRightRelationBuilder.cs
│   │   │   │   │   ├── IRequiredMultiRightRelationBuilder.cs
│   │   │   │   │   ├── IRequiredSingleRightRelationBuilder.cs
│   │   │   │   │   ├── PropertyBuilder.cs
│   │   │   │   │   └── RightRelationBuilder.cs
│   │   │   │   ├── ColumnDefinition.cs
│   │   │   │   ├── EntityConfiguration.cs
│   │   │   │   ├── EntityFactory.cs
│   │   │   │   ├── EntityRelationDefinition.cs
│   │   │   │   └── ExpressionExtensions.cs
│   │   │   ├── Entity.cs
│   │   │   ├── EntityColumn.cs
│   │   │   ├── EntityColumnCollection.cs
│   │   │   └── EntityRelation.cs
│   │   ├── NpgsqlCommandExtensions.cs
│   │   ├── NpgsqlDataReaderExtensions.cs
│   │   ├── NpgsqlParameterExtensions.cs
│   │   ├── NpgsqlQuotedNameTranslator.cs
│   │   ├── ParameterTypeHandler.cs
│   │   ├── Properties/
│   │   │   ├── AssemblyInfo.cs
│   │   │   └── GlobalUsings.cs
│   │   ├── PropertyInfoExtensions.cs
│   │   ├── Table.cs
│   │   ├── TableBase.cs
│   │   ├── TrioKeyCollection.cs
│   │   ├── TypeArgumentException.cs
│   │   ├── TypeExtensions.cs
│   │   ├── UInt64Handler.cs
│   │   ├── Venflow.csproj
│   │   ├── Venflow.xml
│   │   ├── VenflowConfiguration.cs
│   │   └── VenflowDbType.cs
│   ├── Venflow.AspNetCore/
│   │   ├── ServiceCollectionExtensions.cs
│   │   ├── Venflow.AspNetCore.csproj
│   │   └── Venflow.AspNetCore.xml
│   ├── Venflow.Extensions.Logging/
│   │   ├── DatabaseOptionsBuilderExtensions.cs
│   │   ├── Venflow.Extensions.Logging.csproj
│   │   └── Venflow.Extensions.Logging.xml
│   ├── Venflow.Generators/
│   │   ├── Assemblies.cs
│   │   ├── CompilationExtensions.cs
│   │   ├── GeneratorExecutionContextExtensions.cs
│   │   ├── KeyGenerator.cs
│   │   ├── Properties/
│   │   │   ├── GeneratedKeyAttribute.cs
│   │   │   └── launchSettings.json
│   │   ├── Venflow.Generators.csproj
│   │   └── Venflow.Generators.xml
│   ├── Venflow.Keys/
│   │   ├── JsonKeyConverter.cs
│   │   ├── Key.cs
│   │   ├── KeyConverter.cs
│   │   ├── Properties/
│   │   │   ├── AssemblyInfo.cs
│   │   │   └── GlobalUsings.cs
│   │   ├── Venflow.Keys.csproj
│   │   └── Venflow.Keys.xml
│   └── Venflow.NewtonsoftJson/
│       ├── NewtonsoftJsonKeyConverter.cs
│       ├── Venflow.NewtonsoftJson.csproj
│       └── Venflow.NewtonsoftJson.xml
└── test/
    ├── Directory.Build.props
    ├── Venflow.Benchmarks/
    │   ├── BenchmarkHandler.cs
    │   ├── Benchmarks/
    │   │   ├── BenchmarkBase.cs
    │   │   ├── DeleteBenchmarks/
    │   │   │   ├── DeleteBatchAsyncBenchmark.cs
    │   │   │   └── DeleteSingleAsyncBenchmark.cs
    │   │   ├── InsertBenchmarks/
    │   │   │   ├── InsertBatchAsyncBenchmark.cs
    │   │   │   ├── InsertBatchWithRelationsAsyncBenchmark.cs
    │   │   │   ├── InsertSingleAsyncBenchmark.cs
    │   │   │   └── InsertSingleWithRelationsAsyncBenchmark.cs
    │   │   ├── InstantiationBenchmark.cs
    │   │   ├── MiscBenchmarks.cs
    │   │   ├── QueryBenchmarks/
    │   │   │   ├── QueryBatchAsyncBenchmark.cs
    │   │   │   ├── QueryBatchWithRelationsAsyncBenchmark.cs
    │   │   │   ├── QuerySingleAsyncBenchmark.cs
    │   │   │   ├── QuerySingleWithParameterAsyncBenchmark.cs
    │   │   │   └── QuerySingleWithRelationsAsyncBenchmark.cs
    │   │   └── UpdateBenchmarks/
    │   │       ├── UpdateBatchAsyncBenchmark.cs
    │   │       └── UpdateSingleAsyncBenchmark.cs
    │   ├── Models/
    │   │   ├── Configurations/
    │   │   │   ├── BenchmarkDb.cs
    │   │   │   └── BenchmarkDbContext.cs
    │   │   ├── Email.cs
    │   │   ├── EmailContent.cs
    │   │   └── Person.cs
    │   ├── Startup.cs
    │   └── Venflow.Benchmarks.csproj
    ├── Venflow.Score/
    │   ├── BenchResult.cs
    │   ├── Orm.cs
    │   ├── Startup.cs
    │   ├── StringExtensions.cs
    │   └── Venflow.Score.csproj
    ├── Venflow.Shared/
    │   ├── SecretsHandler.cs
    │   └── Venflow.Shared.csproj
    ├── Venflow.Tests/
    │   ├── DatabaseTests/
    │   │   └── RelationMapping.cs
    │   ├── DeleteTests/
    │   │   ├── BatchDelete.cs
    │   │   └── SingleDelete.cs
    │   ├── GeneratorTests/
    │   │   └── KeyGenerationTests.cs
    │   ├── InsertTests/
    │   │   ├── BatchInsert.cs
    │   │   └── SingleInsert.cs
    │   ├── JsonTests/
    │   │   ├── KeyConverter.cs
    │   │   ├── NewtonsoftJson.cs
    │   │   └── SystemJson.cs
    │   ├── LogTests/
    │   │   └── LogTests.cs
    │   ├── MiscTests.cs
    │   ├── Models/
    │   │   ├── Blog.cs
    │   │   ├── BlogConfiguration.cs
    │   │   ├── Dummy.cs
    │   │   ├── DummyEnum.cs
    │   │   ├── Email.cs
    │   │   ├── EmailConfiguration.cs
    │   │   ├── EmailContent.cs
    │   │   ├── Person.cs
    │   │   ├── PersonConfiguration.cs
    │   │   ├── PostgreEnum.cs
    │   │   ├── RelationDatabase.cs
    │   │   ├── ReverseEmail.cs
    │   │   ├── ReverseEmailConfiguration.cs
    │   │   ├── ReverseEmailContent.cs
    │   │   ├── ReverseEmailContentConfiguration.cs
    │   │   ├── ReversePerson.cs
    │   │   ├── ReverseRelationDatabase.cs
    │   │   ├── UncommonType.cs
    │   │   ├── User.cs
    │   │   └── UserConfiguration.cs
    │   ├── QueryTests/
    │   │   ├── BatchQuery.cs
    │   │   ├── CustomQuery.cs
    │   │   ├── ExpressionQuery.cs
    │   │   └── SingleQuery.cs
    │   ├── SpecificTypes/
    │   │   ├── CLREnumTests.cs
    │   │   ├── CLRUIntKeyTests.cs
    │   │   ├── CLRUIntTests.cs
    │   │   ├── GuidTests.cs
    │   │   ├── KeyTests.cs
    │   │   └── PostgresEnumTests.cs
    │   ├── TableExtensions.cs
    │   ├── TableTests.cs
    │   ├── TestBase.cs
    │   ├── TransactionTests/
    │   │   └── TransactionTests.cs
    │   ├── UnitTestHandler.cs
    │   ├── UpdateTests/
    │   │   ├── BatchUpdate.cs
    │   │   ├── CustomUpdate.cs
    │   │   └── SingleUpdate.cs
    │   ├── Venflow.Tests.csproj
    │   └── xunit.runner.json
    └── Venflow.Tests.Keys/
        ├── Directory.Build.props
        ├── Key.cs
        ├── Venflow.Tests.Keys.csproj
        └── Venflow.Tests.Keys.xml
Download .txt
SYMBOL INDEX (1511 symbols across 219 files)

FILE: docs/docfx/styles/docfx.js
  function breakText (line 43) | function breakText() {
  function renderTables (line 53) | function renderTables() {
  function renderAlerts (line 58) | function renderAlerts() {
  function renderLinks (line 74) | function renderLinks() {
  function highlight (line 83) | function highlight() {
  function enableSearch (line 123) | function enableSearch() {
  function renderNavbar (line 348) | function renderNavbar() {
  function renderSidebar (line 415) | function renderSidebar() {
  function renderBreadcrumb (line 579) | function renderBreadcrumb() {
  function renderAffix (line 599) | function renderAffix() {
  function renderFooter (line 714) | function renderFooter() {
  function renderLogo (line 755) | function renderLogo() {
  function renderTabs (line 788) | function renderTabs() {
  function utility (line 1053) | function utility() {
  function workAroundFixedHeaderForAnchors (line 1139) | function workAroundFixedHeaderForAnchors() {

FILE: docs/docfx/styles/docfx.vendor.js
  function b (line 2) | function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e...
  function w (line 2) | function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof...
  function p (line 2) | function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e...
  function se (line 2) | function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeTy...
  function ue (line 2) | function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cac...
  function le (line 2) | function le(e){return e[S]=!0,e}
  function ce (line 2) | function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(...
  function fe (line 2) | function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[...
  function pe (line 2) | function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourc...
  function de (line 2) | function de(t){return function(e){return"input"===e.nodeName.toLowerCase...
  function he (line 2) | function he(n){return function(e){var t=e.nodeName.toLowerCase();return(...
  function ge (line 2) | function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e....
  function ve (line 2) | function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,...
  function ye (line 2) | function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}
  function me (line 2) | function me(){}
  function xe (line 2) | function xe(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}
  function be (line 2) | function be(s,e,t){var u=e.dir,l=e.next,c=l||u,f=t&&"parentNode"===c,p=r...
  function we (line 2) | function we(i){return 1<i.length?function(e,t,n){var r=i.length;while(r-...
  function Te (line 2) | function Te(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(...
  function Ce (line 2) | function Ce(d,h,g,v,y,e){return v&&!v[S]&&(v=Ce(v)),y&&!y[S]&&(y=Ce(y,e)...
  function Ee (line 2) | function Ee(e){for(var i,t,n,r=e.length,o=b.relative[e[0].type],a=o||b.r...
  function A (line 2) | function A(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerC...
  function D (line 2) | function D(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,...
  function O (line 2) | function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}
  function R (line 2) | function R(e){return e}
  function M (line 2) | function M(e){throw e}
  function I (line 2) | function I(e,t,n,r){var i;try{e&&m(i=e.promise)?i.call(e).done(t).fail(n...
  function l (line 2) | function l(i,o,a,s){return function(){var n=this,r=arguments,e=function(...
  function B (line 2) | function B(){E.removeEventListener("DOMContentLoaded",B),C.removeEventLi...
  function U (line 2) | function U(e,t){return t.toUpperCase()}
  function X (line 2) | function X(e){return e.replace(_,"ms-").replace(z,U)}
  function G (line 2) | function G(){this.expando=S.expando+G.uid++}
  function Z (line 2) | function Z(e,t,n){var r,i;if(void 0===n&&1===e.nodeType)if(r="data-"+t.r...
  function se (line 2) | function se(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:functio...
  function le (line 2) | function le(e,t){for(var n,r,i,o,a,s,u,l=[],c=0,f=e.length;c<f;c++)(r=e[...
  function ve (line 2) | function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagNa...
  function ye (line 2) | function ye(e,t){for(var n=0,r=e.length;n<r;n++)Y.set(e[n],"globalEval",...
  function xe (line 2) | function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),...
  function Ce (line 2) | function Ce(){return!0}
  function Ee (line 2) | function Ee(){return!1}
  function Se (line 2) | function Se(e,t){return e===function(){try{return E.activeElement}catch(...
  function ke (line 2) | function ke(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"...
  function Ae (line 2) | function Ae(e,i,o){o?(Y.set(e,i,!1),S.event.add(e,i,{namespace:!1,handle...
  function qe (line 2) | function qe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"...
  function Le (line 2) | function Le(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}
  function He (line 2) | function He(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.sli...
  function Oe (line 2) | function Oe(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=...
  function Pe (line 2) | function Pe(n,r,i,o){r=g(r);var e,t,a,s,u,l,c=0,f=n.length,p=f-1,d=r[0],...
  function Re (line 2) | function Re(e,t,n){for(var r,i=t?S.filter(t,e):e,o=0;null!=(r=i[o]);o++)...
  function Be (line 2) | function Be(e,t,n){var r,i,o,a,s=e.style;return(n=n||Ie(e))&&(""!==(a=n....
  function $e (line 2) | function $e(e,t){return{get:function(){if(!e())return(this.get=t).apply(...
  function e (line 2) | function e(){if(l){u.style.cssText="position:absolute;left:-11111px;widt...
  function t (line 2) | function t(e){return Math.round(parseFloat(e))}
  function Xe (line 2) | function Xe(e){var t=S.cssProps[e]||Ue[e];return t||(e in ze?e:Ue[e]=fun...
  function Je (line 2) | function Je(e,t,n){var r=te.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[...
  function Ke (line 2) | function Ke(e,t,n,r,i,o){var a="width"===t?1:0,s=0,u=0;if(n===(r?"border...
  function Ze (line 2) | function Ze(e,t,n){var r=Ie(e),i=(!y.boxSizingReliable()||n)&&"border-bo...
  function et (line 2) | function et(e,t,n,r,i){return new et.prototype.init(e,t,n,r,i)}
  function st (line 2) | function st(){nt&&(!1===E.hidden&&C.requestAnimationFrame?C.requestAnima...
  function ut (line 2) | function ut(){return C.setTimeout(function(){tt=void 0}),tt=Date.now()}
  function lt (line 2) | function lt(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin...
  function ct (line 2) | function ct(e,t,n){for(var r,i=(ft.tweeners[t]||[]).concat(ft.tweeners["...
  function ft (line 2) | function ft(o,e,t){var n,a,r=0,i=ft.prefilters.length,s=S.Deferred().alw...
  function vt (line 2) | function vt(e){return(e.match(P)||[]).join(" ")}
  function yt (line 2) | function yt(e){return e.getAttribute&&e.getAttribute("class")||""}
  function mt (line 2) | function mt(e){return Array.isArray(e)?e:"string"==typeof e&&e.match(P)|...
  function Dt (line 2) | function Dt(n,e,r,i){var t;if(Array.isArray(e))S.each(e,function(e,t){r|...
  function Ft (line 2) | function Ft(o){return function(e,t){"string"!=typeof e&&(t=e,e="*");var ...
  function Bt (line 2) | function Bt(t,i,o,a){var s={},u=t===Mt;function l(e){var r;return s[e]=!...
  function $t (line 2) | function $t(e,t){var n,r,i=S.ajaxSettings.flatOptions||{};for(n in t)voi...
  function l (line 2) | function l(e,t,n,r){var i,o,a,s,u,l=t;h||(h=!0,d&&C.clearTimeout(d),c=vo...
  function n (line 9) | function n(){o.detach().trigger("closed.bs.alert").remove()}
  function i (line 9) | function i(o){return this.each(function(){var t=s(this),e=t.data("bs.but...
  function r (line 9) | function r(n){return this.each(function(){var t=p(this),e=t.data("bs.car...
  function n (line 9) | function n(t){var e,i=t.attr("data-target")||(e=t.attr("href"))&&e.repla...
  function l (line 9) | function l(o){return this.each(function(){var t=a(this),e=t.data("bs.col...
  function l (line 9) | function l(t){var e=t.attr("data-target");e||(e=(e=t.attr("href"))&&/#[A...
  function s (line 9) | function s(o){o&&3===o.which||(a(".dropdown-backdrop").remove(),a(r).eac...
  function r (line 9) | function r(o,n){return this.each(function(){var t=a(this),e=t.data("bs.m...
  function u (line 9) | function u(t,e){var i=t.nodeName.toLowerCase();if(-1!==g.inArray(i,e))re...
  function n (line 9) | function n(t,e,i){if(0===t.length)return t;if(i&&"function"==typeof i)re...
  function n (line 9) | function n(){"in"!=e.hoverState&&i.detach(),e.$element&&e.$element.remov...
  function n (line 9) | function n(t,e){this.$body=s(document.body),this.$scrollElement=s(t).is(...
  function e (line 9) | function e(o){return this.each(function(){var t=s(this),e=t.data("bs.scr...
  function e (line 9) | function e(i){return this.each(function(){var t=r(this),e=t.data("bs.tab...
  function s (line 9) | function s(){o.removeClass("active").find("> .dropdown-menu > .active")....
  function i (line 9) | function i(o){return this.each(function(){var t=l(this),e=t.data("bs.aff...
  function t (line 11) | function t(e){return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replac...
  function r (line 11) | function r(e){return e.nodeName.toLowerCase()}
  function a (line 11) | function a(e,t){var r=e&&e.exec(t);return r&&0===r.index}
  function i (line 11) | function i(e){return T.test(e)}
  function n (line 11) | function n(e){var t,r,a,n,o=e.className+" ";if(o+=e.parentNode?e.parentN...
  function o (line 11) | function o(e){var t,r={},a=Array.prototype.slice.call(arguments,1);for(t...
  function s (line 11) | function s(e){var t=[];return function a(e,i){for(var n=e.firstChild;n;n...
  function l (line 11) | function l(e,a,i){function n(){return e.length&&a.length?e[0].offset!==a...
  function c (line 11) | function c(e){return e.v&&!e.cached_variants&&(e.cached_variants=e.v.map...
  function d (line 11) | function d(e){function t(e){return e&&e.source||e}function r(r,a){return...
  function p (line 11) | function p(e,r,i,n){function o(e,t){var r,i;for(r=0,i=t.c.length;i>r;r++...
  function m (line 11) | function m(e,r){r=r||D.languages||x(E);var a={r:0,value:t(e)},i=a;return...
  function u (line 11) | function u(e){return D.tabReplace||D.useBR?e.replace(A,function(e,t){ret...
  function b (line 11) | function b(e,t,r){var a=t?N[t]:r,i=[e.trim()];return e.match(/\bhljs\b/)...
  function g (line 11) | function g(e){var t,r,a,o,c,d=n(e);i(d)||(D.useBR?(t=document.createElem...
  function f (line 11) | function f(e){D=o(D,e)}
  function _ (line 11) | function _(){if(!_.called){_.called=!0;var e=document.querySelectorAll("...
  function h (line 11) | function h(){addEventListener("DOMContentLoaded",_,!1),addEventListener(...
  function v (line 11) | function v(t,r){var a=E[t]=r(e);a.aliases&&a.aliases.forEach(function(e)...
  function y (line 11) | function y(){return x(E)}
  function S (line 11) | function S(e){return e=(e||"").toLowerCase(),E[e]||E[N[e]]}
  function t (line 13) | function t(e,t){var r=[{b:e,e:t}];return r[0].c=r,r}
  function a (line 25) | function a(a){return!isNaN(parseFloat(a))&&isFinite(a)}
  function e (line 41) | function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.en...
  function e (line 41) | function e(t){var r=!(arguments.length>1&&void 0!==arguments[1])||argume...
  function e (line 41) | function e(t){n(this,e),this.ctx=t,this.ie=!1;var r=window.navigator.use...
  function d (line 50) | function d(A){A.icon=Object.prototype.hasOwnProperty.call(A,"icon")?A.ic...
  function f (line 50) | function f(A){var e;if("string"==typeof A||A instanceof String)e=[].slic...

FILE: docs/docfx/styles/search-worker.js
  function buildIndex (line 48) | function buildIndex() {
  function isEmpty (line 70) | function isEmpty(obj) {

FILE: docs/docfx/styles/styleswitcher.js
  function onThemeSelect (line 3) | function onThemeSelect(event) {
  function getUrl (line 9) | function getUrl(slug) {

FILE: docs/docfx/templates/light-dark-theme/styles/styleswitcher.js
  function onThemeSelect (line 3) | function onThemeSelect(event) {
  function getUrl (line 9) | function getUrl(slug) {

FILE: docs/styles/docfx.js
  function breakText (line 43) | function breakText() {
  function renderTables (line 53) | function renderTables() {
  function renderAlerts (line 58) | function renderAlerts() {
  function renderLinks (line 74) | function renderLinks() {
  function highlight (line 83) | function highlight() {
  function enableSearch (line 123) | function enableSearch() {
  function renderNavbar (line 348) | function renderNavbar() {
  function renderSidebar (line 415) | function renderSidebar() {
  function renderBreadcrumb (line 579) | function renderBreadcrumb() {
  function renderAffix (line 599) | function renderAffix() {
  function renderFooter (line 714) | function renderFooter() {
  function renderLogo (line 755) | function renderLogo() {
  function renderTabs (line 788) | function renderTabs() {
  function utility (line 1053) | function utility() {
  function workAroundFixedHeaderForAnchors (line 1139) | function workAroundFixedHeaderForAnchors() {

FILE: docs/styles/docfx.vendor.js
  function b (line 2) | function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e...
  function w (line 2) | function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof...
  function p (line 2) | function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e...
  function se (line 2) | function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeTy...
  function ue (line 2) | function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cac...
  function le (line 2) | function le(e){return e[S]=!0,e}
  function ce (line 2) | function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(...
  function fe (line 2) | function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[...
  function pe (line 2) | function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourc...
  function de (line 2) | function de(t){return function(e){return"input"===e.nodeName.toLowerCase...
  function he (line 2) | function he(n){return function(e){var t=e.nodeName.toLowerCase();return(...
  function ge (line 2) | function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e....
  function ve (line 2) | function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,...
  function ye (line 2) | function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}
  function me (line 2) | function me(){}
  function xe (line 2) | function xe(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}
  function be (line 2) | function be(s,e,t){var u=e.dir,l=e.next,c=l||u,f=t&&"parentNode"===c,p=r...
  function we (line 2) | function we(i){return 1<i.length?function(e,t,n){var r=i.length;while(r-...
  function Te (line 2) | function Te(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(...
  function Ce (line 2) | function Ce(d,h,g,v,y,e){return v&&!v[S]&&(v=Ce(v)),y&&!y[S]&&(y=Ce(y,e)...
  function Ee (line 2) | function Ee(e){for(var i,t,n,r=e.length,o=b.relative[e[0].type],a=o||b.r...
  function A (line 2) | function A(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerC...
  function D (line 2) | function D(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,...
  function O (line 2) | function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}
  function R (line 2) | function R(e){return e}
  function M (line 2) | function M(e){throw e}
  function I (line 2) | function I(e,t,n,r){var i;try{e&&m(i=e.promise)?i.call(e).done(t).fail(n...
  function l (line 2) | function l(i,o,a,s){return function(){var n=this,r=arguments,e=function(...
  function B (line 2) | function B(){E.removeEventListener("DOMContentLoaded",B),C.removeEventLi...
  function U (line 2) | function U(e,t){return t.toUpperCase()}
  function X (line 2) | function X(e){return e.replace(_,"ms-").replace(z,U)}
  function G (line 2) | function G(){this.expando=S.expando+G.uid++}
  function Z (line 2) | function Z(e,t,n){var r,i;if(void 0===n&&1===e.nodeType)if(r="data-"+t.r...
  function se (line 2) | function se(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:functio...
  function le (line 2) | function le(e,t){for(var n,r,i,o,a,s,u,l=[],c=0,f=e.length;c<f;c++)(r=e[...
  function ve (line 2) | function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagNa...
  function ye (line 2) | function ye(e,t){for(var n=0,r=e.length;n<r;n++)Y.set(e[n],"globalEval",...
  function xe (line 2) | function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),...
  function Ce (line 2) | function Ce(){return!0}
  function Ee (line 2) | function Ee(){return!1}
  function Se (line 2) | function Se(e,t){return e===function(){try{return E.activeElement}catch(...
  function ke (line 2) | function ke(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"...
  function Ae (line 2) | function Ae(e,i,o){o?(Y.set(e,i,!1),S.event.add(e,i,{namespace:!1,handle...
  function qe (line 2) | function qe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"...
  function Le (line 2) | function Le(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}
  function He (line 2) | function He(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.sli...
  function Oe (line 2) | function Oe(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=...
  function Pe (line 2) | function Pe(n,r,i,o){r=g(r);var e,t,a,s,u,l,c=0,f=n.length,p=f-1,d=r[0],...
  function Re (line 2) | function Re(e,t,n){for(var r,i=t?S.filter(t,e):e,o=0;null!=(r=i[o]);o++)...
  function Be (line 2) | function Be(e,t,n){var r,i,o,a,s=e.style;return(n=n||Ie(e))&&(""!==(a=n....
  function $e (line 2) | function $e(e,t){return{get:function(){if(!e())return(this.get=t).apply(...
  function e (line 2) | function e(){if(l){u.style.cssText="position:absolute;left:-11111px;widt...
  function t (line 2) | function t(e){return Math.round(parseFloat(e))}
  function Xe (line 2) | function Xe(e){var t=S.cssProps[e]||Ue[e];return t||(e in ze?e:Ue[e]=fun...
  function Je (line 2) | function Je(e,t,n){var r=te.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[...
  function Ke (line 2) | function Ke(e,t,n,r,i,o){var a="width"===t?1:0,s=0,u=0;if(n===(r?"border...
  function Ze (line 2) | function Ze(e,t,n){var r=Ie(e),i=(!y.boxSizingReliable()||n)&&"border-bo...
  function et (line 2) | function et(e,t,n,r,i){return new et.prototype.init(e,t,n,r,i)}
  function st (line 2) | function st(){nt&&(!1===E.hidden&&C.requestAnimationFrame?C.requestAnima...
  function ut (line 2) | function ut(){return C.setTimeout(function(){tt=void 0}),tt=Date.now()}
  function lt (line 2) | function lt(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin...
  function ct (line 2) | function ct(e,t,n){for(var r,i=(ft.tweeners[t]||[]).concat(ft.tweeners["...
  function ft (line 2) | function ft(o,e,t){var n,a,r=0,i=ft.prefilters.length,s=S.Deferred().alw...
  function vt (line 2) | function vt(e){return(e.match(P)||[]).join(" ")}
  function yt (line 2) | function yt(e){return e.getAttribute&&e.getAttribute("class")||""}
  function mt (line 2) | function mt(e){return Array.isArray(e)?e:"string"==typeof e&&e.match(P)|...
  function Dt (line 2) | function Dt(n,e,r,i){var t;if(Array.isArray(e))S.each(e,function(e,t){r|...
  function Ft (line 2) | function Ft(o){return function(e,t){"string"!=typeof e&&(t=e,e="*");var ...
  function Bt (line 2) | function Bt(t,i,o,a){var s={},u=t===Mt;function l(e){var r;return s[e]=!...
  function $t (line 2) | function $t(e,t){var n,r,i=S.ajaxSettings.flatOptions||{};for(n in t)voi...
  function l (line 2) | function l(e,t,n,r){var i,o,a,s,u,l=t;h||(h=!0,d&&C.clearTimeout(d),c=vo...
  function n (line 9) | function n(){o.detach().trigger("closed.bs.alert").remove()}
  function i (line 9) | function i(o){return this.each(function(){var t=s(this),e=t.data("bs.but...
  function r (line 9) | function r(n){return this.each(function(){var t=p(this),e=t.data("bs.car...
  function n (line 9) | function n(t){var e,i=t.attr("data-target")||(e=t.attr("href"))&&e.repla...
  function l (line 9) | function l(o){return this.each(function(){var t=a(this),e=t.data("bs.col...
  function l (line 9) | function l(t){var e=t.attr("data-target");e||(e=(e=t.attr("href"))&&/#[A...
  function s (line 9) | function s(o){o&&3===o.which||(a(".dropdown-backdrop").remove(),a(r).eac...
  function r (line 9) | function r(o,n){return this.each(function(){var t=a(this),e=t.data("bs.m...
  function u (line 9) | function u(t,e){var i=t.nodeName.toLowerCase();if(-1!==g.inArray(i,e))re...
  function n (line 9) | function n(t,e,i){if(0===t.length)return t;if(i&&"function"==typeof i)re...
  function n (line 9) | function n(){"in"!=e.hoverState&&i.detach(),e.$element&&e.$element.remov...
  function n (line 9) | function n(t,e){this.$body=s(document.body),this.$scrollElement=s(t).is(...
  function e (line 9) | function e(o){return this.each(function(){var t=s(this),e=t.data("bs.scr...
  function e (line 9) | function e(i){return this.each(function(){var t=r(this),e=t.data("bs.tab...
  function s (line 9) | function s(){o.removeClass("active").find("> .dropdown-menu > .active")....
  function i (line 9) | function i(o){return this.each(function(){var t=l(this),e=t.data("bs.aff...
  function t (line 11) | function t(e){return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replac...
  function r (line 11) | function r(e){return e.nodeName.toLowerCase()}
  function a (line 11) | function a(e,t){var r=e&&e.exec(t);return r&&0===r.index}
  function i (line 11) | function i(e){return T.test(e)}
  function n (line 11) | function n(e){var t,r,a,n,o=e.className+" ";if(o+=e.parentNode?e.parentN...
  function o (line 11) | function o(e){var t,r={},a=Array.prototype.slice.call(arguments,1);for(t...
  function s (line 11) | function s(e){var t=[];return function a(e,i){for(var n=e.firstChild;n;n...
  function l (line 11) | function l(e,a,i){function n(){return e.length&&a.length?e[0].offset!==a...
  function c (line 11) | function c(e){return e.v&&!e.cached_variants&&(e.cached_variants=e.v.map...
  function d (line 11) | function d(e){function t(e){return e&&e.source||e}function r(r,a){return...
  function p (line 11) | function p(e,r,i,n){function o(e,t){var r,i;for(r=0,i=t.c.length;i>r;r++...
  function m (line 11) | function m(e,r){r=r||D.languages||x(E);var a={r:0,value:t(e)},i=a;return...
  function u (line 11) | function u(e){return D.tabReplace||D.useBR?e.replace(A,function(e,t){ret...
  function b (line 11) | function b(e,t,r){var a=t?N[t]:r,i=[e.trim()];return e.match(/\bhljs\b/)...
  function g (line 11) | function g(e){var t,r,a,o,c,d=n(e);i(d)||(D.useBR?(t=document.createElem...
  function f (line 11) | function f(e){D=o(D,e)}
  function _ (line 11) | function _(){if(!_.called){_.called=!0;var e=document.querySelectorAll("...
  function h (line 11) | function h(){addEventListener("DOMContentLoaded",_,!1),addEventListener(...
  function v (line 11) | function v(t,r){var a=E[t]=r(e);a.aliases&&a.aliases.forEach(function(e)...
  function y (line 11) | function y(){return x(E)}
  function S (line 11) | function S(e){return e=(e||"").toLowerCase(),E[e]||E[N[e]]}
  function t (line 13) | function t(e,t){var r=[{b:e,e:t}];return r[0].c=r,r}
  function a (line 25) | function a(a){return!isNaN(parseFloat(a))&&isFinite(a)}
  function e (line 41) | function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.en...
  function e (line 41) | function e(t){var r=!(arguments.length>1&&void 0!==arguments[1])||argume...
  function e (line 41) | function e(t){n(this,e),this.ctx=t,this.ie=!1;var r=window.navigator.use...
  function d (line 50) | function d(A){A.icon=Object.prototype.hasOwnProperty.call(A,"icon")?A.ic...
  function f (line 50) | function f(A){var e;if("string"==typeof A||A instanceof String)e=[].slic...

FILE: docs/styles/search-worker.js
  function buildIndex (line 48) | function buildIndex() {
  function isEmpty (line 70) | function isEmpty(obj) {

FILE: docs/styles/styleswitcher.js
  function onThemeSelect (line 3) | function onThemeSelect(event) {
  function getUrl (line 9) | function getUrl(slug) {

FILE: src/Venflow.AspNetCore/ServiceCollectionExtensions.cs
  class VenflowServiceCollectionExtensions (line 12) | public static class VenflowServiceCollectionExtensions
    method AddDatabase (line 22) | public static IServiceCollection AddDatabase<TDatabase>(this IServiceC...
    method AddDatabase (line 36) | public static IServiceCollection AddDatabase<TDatabase>(this IServiceC...
    method AddDatabase (line 51) | public static IServiceCollection AddDatabase<TDatabase>(this IServiceC...
    method AddVenflowJson (line 71) | public static IServiceCollection AddVenflowJson(this IServiceCollectio...
    method GetDatbaseOptionsBuilder (line 81) | private static DatabaseOptionsBuilder<TDatabase> GetDatbaseOptionsBuil...

FILE: src/Venflow.Extensions.Logging/DatabaseOptionsBuilderExtensions.cs
  class DatabaseOptionsBuilderExtensions (line 8) | public static class DatabaseOptionsBuilderExtensions
    method UseLoggerFactory (line 18) | public static DatabaseOptionsBuilder UseLoggerFactory<TDatabase>(this ...

FILE: src/Venflow.Generators/Assemblies.cs
  class Assemblies (line 5) | internal static class Assemblies
  class AssemblyTokenInfo (line 13) | internal class AssemblyTokenInfo
    method AssemblyTokenInfo (line 17) | public AssemblyTokenInfo(string name, byte[] token)

FILE: src/Venflow.Generators/CompilationExtensions.cs
  class CompilationExtensions (line 7) | internal static class CompilationExtensions
    method ContainsAssembly (line 9) | internal static bool ContainsAssembly(this Compilation compilation, Me...

FILE: src/Venflow.Generators/GeneratorExecutionContextExtensions.cs
  class GeneratorExecutionContextExtensions (line 9) | internal static class GeneratorExecutionContextExtensions
    method AddResourceSource (line 11) | internal static Compilation AddResourceSource(this GeneratorExecutionC...

FILE: src/Venflow.Generators/KeyGenerator.cs
  class KeyGenerator (line 17) | [Generator]
    method Initialize (line 21) | public void Initialize(GeneratorInitializationContext context)
    method Execute (line 29) | public void Execute(GeneratorExecutionContext context)
    class SyntaxReceiver (line 240) | private class SyntaxReceiver : ISyntaxReceiver
      method OnVisitSyntaxNode (line 244) | public void OnVisitSyntaxNode(SyntaxNode syntaxNode)

FILE: src/Venflow.Generators/Properties/GeneratedKeyAttribute.cs
  class GeneratedKeyAttribute (line 5) | [AttributeUsage(AttributeTargets.Struct, Inherited = false, AllowMultipl...
    method GeneratedKeyAttribute (line 10) | public GeneratedKeyAttribute(Type keyType)

FILE: src/Venflow.Keys/JsonKeyConverter.cs
  class JsonKeyConverterFactory (line 10) | public class JsonKeyConverterFactory : JsonConverterFactory
    method CanConvert (line 15) | public override bool CanConvert(Type typeToConvert)
    method CreateConverter (line 19) | public override JsonConverter CreateConverter(Type typeToConvert, Json...
    method CreateJsonConverter (line 22) | private JsonConverter CreateJsonConverter(Type typeToConvert)
  class JsonKeyConverter (line 35) | internal class JsonKeyConverter<TKey, TEntity, TKeyValue> : JsonConverte...
    method Read (line 39) | public override TKey Read(ref Utf8JsonReader reader, Type typeToConver...
    method Write (line 51) | public override void Write(Utf8JsonWriter writer, TKey value, JsonSeri...

FILE: src/Venflow.Keys/Key.cs
  type Key (line 13) | [JsonConverter(typeof(JsonKeyConverterFactory))]
    method Key (line 26) | public Key(TKey value)
    method Equals (line 56) | public bool Equals(Key<TEntity, TKey> other)
    method Equals (line 62) | public override bool Equals(object? obj)
    method GetHashCode (line 73) | public override int GetHashCode()
    method ToString (line 79) | public override string? ToString()
  type IKey (line 91) | [TypeConverter(typeof(KeyConverter))]
  type IKey (line 103) | [EditorBrowsable(EditorBrowsableState.Never)]

FILE: src/Venflow.Keys/KeyConverter.cs
  class KeyConverter (line 13) | public class KeyConverter : TypeConverter
    method KeyConverter (line 28) | public KeyConverter(Type keyType)
    method CanConvertFrom (line 34) | public override bool CanConvertFrom(ITypeDescriptorContext? context, T...
    method CanConvertTo (line 38) | public override bool CanConvertTo(ITypeDescriptorContext? context, Typ...
    method ConvertFrom (line 42) | public override object? ConvertFrom(ITypeDescriptorContext? context, C...
    method ConvertTo (line 46) | public override object? ConvertTo(ITypeDescriptorContext? context, Cul...
    method GetOrCreateKeyFactory (line 52) | [EditorBrowsable(EditorBrowsableState.Never)]
    method GetOrCreateKeyFactory (line 59) | [EditorBrowsable(EditorBrowsableState.Never)]
    method CreateTypeConverter (line 63) | private static TypeConverter CreateTypeConverter(Type keyType)
    method CreateKeyFactory (line 77) | private static Func<TValue, TKeyType> CreateKeyFactory<TKeyType, TValu...
    method KeyConverter (line 110) | internal KeyConverter(Type type)
    method CanConvertFrom (line 115) | public override bool CanConvertFrom(ITypeDescriptorContext? context, T...
    method CanConvertTo (line 122) | public override bool CanConvertTo(ITypeDescriptorContext? context, Typ...
    method ConvertFrom (line 128) | public override object? ConvertFrom(ITypeDescriptorContext? context, C...
    method ConvertTo (line 145) | public override object? ConvertTo(ITypeDescriptorContext? context, Cul...
    method GetKeyConverter (line 164) | private static TypeConverter GetKeyConverter()
  class KeyConverter (line 104) | internal class KeyConverter<TEntity, TKeyValue> : TypeConverter
    method KeyConverter (line 28) | public KeyConverter(Type keyType)
    method CanConvertFrom (line 34) | public override bool CanConvertFrom(ITypeDescriptorContext? context, T...
    method CanConvertTo (line 38) | public override bool CanConvertTo(ITypeDescriptorContext? context, Typ...
    method ConvertFrom (line 42) | public override object? ConvertFrom(ITypeDescriptorContext? context, C...
    method ConvertTo (line 46) | public override object? ConvertTo(ITypeDescriptorContext? context, Cul...
    method GetOrCreateKeyFactory (line 52) | [EditorBrowsable(EditorBrowsableState.Never)]
    method GetOrCreateKeyFactory (line 59) | [EditorBrowsable(EditorBrowsableState.Never)]
    method CreateTypeConverter (line 63) | private static TypeConverter CreateTypeConverter(Type keyType)
    method CreateKeyFactory (line 77) | private static Func<TValue, TKeyType> CreateKeyFactory<TKeyType, TValu...
    method KeyConverter (line 110) | internal KeyConverter(Type type)
    method CanConvertFrom (line 115) | public override bool CanConvertFrom(ITypeDescriptorContext? context, T...
    method CanConvertTo (line 122) | public override bool CanConvertTo(ITypeDescriptorContext? context, Typ...
    method ConvertFrom (line 128) | public override object? ConvertFrom(ITypeDescriptorContext? context, C...
    method ConvertTo (line 145) | public override object? ConvertTo(ITypeDescriptorContext? context, Cul...
    method GetKeyConverter (line 164) | private static TypeConverter GetKeyConverter()

FILE: src/Venflow.NewtonsoftJson/NewtonsoftJsonKeyConverter.cs
  class NewtonsoftJsonKeyConverter (line 10) | public class NewtonsoftJsonKeyConverter : JsonConverter
    method CanConvert (line 15) | public override bool CanConvert(Type objectType)
    method ReadJson (line 21) | public override object? ReadJson(JsonReader reader, Type objectType, o...
    method WriteJson (line 29) | public override void WriteJson(JsonWriter writer, object? value, JsonS...
    method GetConverter (line 42) | private static JsonConverter GetConverter(Type keyType)
    method CreateConverter (line 47) | private static JsonConverter CreateConverter(Type keyType)
    method ReadJson (line 64) | public override TKey ReadJson(JsonReader reader, Type objectType, TKey...
    method WriteJson (line 75) | public override void WriteJson(JsonWriter writer, TKey value, JsonSeri...
  class NewtonsoftJsonKeyConverter (line 60) | internal class NewtonsoftJsonKeyConverter<TKey, TEntity, TKeyValue> : Js...
    method CanConvert (line 15) | public override bool CanConvert(Type objectType)
    method ReadJson (line 21) | public override object? ReadJson(JsonReader reader, Type objectType, o...
    method WriteJson (line 29) | public override void WriteJson(JsonWriter writer, object? value, JsonS...
    method GetConverter (line 42) | private static JsonConverter GetConverter(Type keyType)
    method CreateConverter (line 47) | private static JsonConverter CreateConverter(Type keyType)
    method ReadJson (line 64) | public override TKey ReadJson(JsonReader reader, Type objectType, TKey...
    method WriteJson (line 75) | public override void WriteJson(JsonWriter writer, TKey value, JsonSeri...

FILE: src/Venflow/CastTypeHandler.cs
  class CastTypeHandler (line 5) | internal class CastTypeHandler<T> : IParameterTypeHandler
    method Handle (line 7) | NpgsqlParameter IParameterTypeHandler.Handle(string name, object val)

FILE: src/Venflow/Commands/IBaseInsertRelationBuilder.cs
  type IBaseInsertRelationBuilder (line 10) | public interface IBaseInsertRelationBuilder<TRelationEntity, TRootEntity...
    method WithAll (line 18) | IBaseInsertRelationBuilder<TRootEntity, TRootEntity> WithAll();
    method With (line 26) | IInsertRelationBuilder<TToEntity, TRootEntity> With<TToEntity>(Express...
    method With (line 35) | IInsertRelationBuilder<TToEntity, TRootEntity> With<TToEntity>(Express...
    method With (line 44) | IInsertRelationBuilder<TToEntity, TRootEntity> With<TToEntity>(Express...

FILE: src/Venflow/Commands/IBaseQueryRelationBuilder.cs
  type IBaseQueryRelationBuilder (line 12) | public interface IBaseQueryRelationBuilder<TRelationEntity, TRootEntity,...
    method JoinWith (line 24) | IQueryRelationBuilder<TToEntity, TRootEntity, TReturn> JoinWith<TToEnt...
    method JoinWith (line 34) | IQueryRelationBuilder<TToEntity, TRootEntity, TReturn> JoinWith<TToEnt...
    method JoinWith (line 44) | IQueryRelationBuilder<TToEntity, TRootEntity, TReturn> JoinWith<TToEnt...
    method LeftJoinWith (line 54) | IQueryRelationBuilder<TToEntity, TRootEntity, TReturn> LeftJoinWith<TT...
    method LeftJoinWith (line 64) | IQueryRelationBuilder<TToEntity, TRootEntity, TReturn> LeftJoinWith<TT...
    method LeftJoinWith (line 74) | IQueryRelationBuilder<TToEntity, TRootEntity, TReturn> LeftJoinWith<TT...
    method RightJoinWith (line 84) | IQueryRelationBuilder<TToEntity, TRootEntity, TReturn> RightJoinWith<T...
    method RightJoinWith (line 94) | IQueryRelationBuilder<TToEntity, TRootEntity, TReturn> RightJoinWith<T...
    method RightJoinWith (line 104) | IQueryRelationBuilder<TToEntity, TRootEntity, TReturn> RightJoinWith<T...
    method FullJoinWith (line 115) | IQueryRelationBuilder<TToEntity, TRootEntity, TReturn> FullJoinWith<TT...
    method FullJoinWith (line 125) | IQueryRelationBuilder<TToEntity, TRootEntity, TReturn> FullJoinWith<TT...
    method FullJoinWith (line 135) | IQueryRelationBuilder<TToEntity, TRootEntity, TReturn> FullJoinWith<TT...

FILE: src/Venflow/Commands/IDeleteCommand.cs
  type IDeleteCommand (line 7) | public interface IDeleteCommand<TEntity> : IVenflowCommand<TEntity> wher...
    method DeleteAsync (line 15) | ValueTask<int> DeleteAsync(TEntity entity, CancellationToken cancellat...
    method DeleteAsync (line 22) | ValueTask<int> DeleteAsync(IEnumerable<TEntity> entities, Cancellation...
    method DeleteAsync (line 29) | ValueTask<int> DeleteAsync(IList<TEntity> entities, CancellationToken ...
    method DeleteAsync (line 36) | ValueTask<int> DeleteAsync(List<TEntity> entities, CancellationToken c...
    method DeleteAsync (line 43) | ValueTask<int> DeleteAsync(TEntity[] entities, CancellationToken cance...

FILE: src/Venflow/Commands/IDeleteCommandBuilder.cs
  type IDeleteCommandBuilder (line 7) | public interface IDeleteCommandBuilder<TEntity> : ISpecficVenflowCommand...
    method DeleteAsync (line 15) | ValueTask<int> DeleteAsync(TEntity entity, CancellationToken cancellat...
    method DeleteAsync (line 22) | ValueTask<int> DeleteAsync(IEnumerable<TEntity> entities, Cancellation...
    method DeleteAsync (line 29) | ValueTask<int> DeleteAsync(IList<TEntity> entities, CancellationToken ...
    method DeleteAsync (line 36) | ValueTask<int> DeleteAsync(List<TEntity> entities, CancellationToken c...
    method DeleteAsync (line 43) | ValueTask<int> DeleteAsync(TEntity[] entities, CancellationToken cance...

FILE: src/Venflow/Commands/IInsertCommand.cs
  type IInsertCommand (line 7) | public interface IInsertCommand<TEntity> : IVenflowCommand<TEntity> wher...
    method InsertAsync (line 15) | Task<int> InsertAsync(TEntity entity, CancellationToken cancellationTo...
    method InsertAsync (line 22) | Task<int> InsertAsync(IList<TEntity> entities, CancellationToken cance...

FILE: src/Venflow/Commands/IInsertCommandBuilder.cs
  type IInsertCommandBuilder (line 7) | public interface IInsertCommandBuilder<TEntity> : ISpecficVenflowCommand...
    method InsertAsync (line 16) | Task<int> InsertAsync(TEntity entity, CancellationToken cancellationTo...
    method InsertAsync (line 23) | Task<int> InsertAsync(IList<TEntity> entities, CancellationToken cance...

FILE: src/Venflow/Commands/IInsertRelationBuilder.cs
  type IInsertRelationBuilder (line 10) | public interface IInsertRelationBuilder<TRelationEntity, TRootEntity> : ...
    method AndWith (line 20) | IInsertRelationBuilder<TToEntity, TRootEntity> AndWith<TToEntity>(Expr...
    method AndWith (line 29) | IInsertRelationBuilder<TToEntity, TRootEntity> AndWith<TToEntity>(Expr...
    method AndWith (line 38) | IInsertRelationBuilder<TToEntity, TRootEntity> AndWith<TToEntity>(Expr...

FILE: src/Venflow/Commands/IPreCommandBuilder.cs
  type IPreCommandBuilder (line 8) | public interface IPreCommandBuilder<TEntity, TReturn> : IQueryCommandBui...
    method AddFormatter (line 14) | IBaseQueryRelationBuilder<TEntity, TEntity, TReturn> AddFormatter();

FILE: src/Venflow/Commands/IQueryCommand.cs
  type IQueryCommand (line 8) | public interface IQueryCommand<TEntity, TReturn> : IVenflowCommand<TEnti...
    method PrepareAsync (line 14) | Task<IQueryCommand<TEntity, TReturn>> PrepareAsync(CancellationToken c...
    method UnprepareAsync (line 19) | Task<IQueryCommand<TEntity, TReturn>> UnprepareAsync(CancellationToken...
    method QueryAsync (line 26) | Task<TReturn?> QueryAsync(CancellationToken cancellationToken = default);

FILE: src/Venflow/Commands/IQueryCommandBuilder.cs
  type IQueryCommandBuilder (line 8) | public interface IQueryCommandBuilder<TEntity, TReturn> : ISpecficVenflo...
    method TrackChanges (line 17) | IBaseQueryRelationBuilder<TEntity, TEntity, TReturn> TrackChanges(bool...
    method QueryAsync (line 24) | Task<TReturn?> QueryAsync(CancellationToken cancellationToken = default);

FILE: src/Venflow/Commands/IQueryRelationBuilder.cs
  type IQueryRelationBuilder (line 12) | public interface IQueryRelationBuilder<TRelationEntity, TRootEntity, TRe...
    method ThenWith (line 24) | IQueryRelationBuilder<TToEntity, TRootEntity, TReturn> ThenWith<TToEnt...
    method ThenWith (line 34) | IQueryRelationBuilder<TToEntity, TRootEntity, TReturn> ThenWith<TToEnt...
    method ThenWith (line 44) | IQueryRelationBuilder<TToEntity, TRootEntity, TReturn> ThenWith<TToEnt...
    method ThenLeftWith (line 54) | IQueryRelationBuilder<TToEntity, TRootEntity, TReturn> ThenLeftWith<TT...
    method ThenLeftWith (line 64) | IQueryRelationBuilder<TToEntity, TRootEntity, TReturn> ThenLeftWith<TT...
    method ThenLeftWith (line 74) | IQueryRelationBuilder<TToEntity, TRootEntity, TReturn> ThenLeftWith<TT...
    method ThenRightWith (line 84) | IQueryRelationBuilder<TToEntity, TRootEntity, TReturn> ThenRightWith<T...
    method ThenRightWith (line 94) | IQueryRelationBuilder<TToEntity, TRootEntity, TReturn> ThenRightWith<T...
    method ThenRightWith (line 104) | IQueryRelationBuilder<TToEntity, TRootEntity, TReturn> ThenRightWith<T...
    method ThenFullWith (line 114) | IQueryRelationBuilder<TToEntity, TRootEntity, TReturn> ThenFullWith<TT...
    method ThenFullWith (line 124) | IQueryRelationBuilder<TToEntity, TRootEntity, TReturn> ThenFullWith<TT...
    method ThenFullWith (line 134) | IQueryRelationBuilder<TToEntity, TRootEntity, TReturn> ThenFullWith<TT...

FILE: src/Venflow/Commands/ISpecficVenflowCommandBuilder.cs
  type ISpecficVenflowCommandBuilder (line 8) | public interface ISpecficVenflowCommandBuilder<out TCommand, out TLogRes...
    method Build (line 16) | TCommand Build();
    method Log (line 24) | TLogResult Log(bool shouldLog = true);
    method LogTo (line 32) | TLogResult LogTo(LoggerCallback logger);
    method LogTo (line 40) | TLogResult LogTo(params LoggerCallback[] loggers);

FILE: src/Venflow/Commands/IUpdateCommand.cs
  type IUpdateCommand (line 7) | public interface IUpdateCommand<TEntity> : IVenflowCommand<TEntity> wher...
    method UpdateAsync (line 15) | ValueTask UpdateAsync(TEntity entity, CancellationToken cancellationTo...
    method UpdateAsync (line 22) | ValueTask UpdateAsync(IEnumerable<TEntity> entities, CancellationToken...
    method UpdateAsync (line 29) | ValueTask UpdateAsync(IList<TEntity> entities, CancellationToken cance...

FILE: src/Venflow/Commands/IUpdateCommandBuilder.cs
  type IUpdateCommandBuilder (line 7) | public interface IUpdateCommandBuilder<TEntity> : ISpecficVenflowCommand...
    method UpdateAsync (line 16) | ValueTask UpdateAsync(TEntity entity, CancellationToken cancellationTo...
    method UpdateAsync (line 23) | ValueTask UpdateAsync(IEnumerable<TEntity> entities, CancellationToken...
    method UpdateAsync (line 30) | ValueTask UpdateAsync(List<TEntity> entities, CancellationToken cancel...
    method UpdateAsync (line 37) | ValueTask UpdateAsync(TEntity[] entities, CancellationToken cancellati...
    method UpdateAsync (line 44) | ValueTask UpdateAsync(IList<TEntity> entities, CancellationToken cance...

FILE: src/Venflow/Commands/IVenflowCommand.cs
  type IVenflowCommand (line 7) | public interface IVenflowCommand<TEntity> : IAsyncDisposable where TEnti...

FILE: src/Venflow/Commands/IVenflowCommandBuilder.cs
  type IVenflowCommandBuilder (line 10) | public interface IVenflowCommandBuilder<TEntity> where TEntity : class, ...
    method QuerySingle (line 16) | IBaseQueryRelationBuilder<TEntity, TEntity, TEntity> QuerySingle(strin...
    method QuerySingle (line 23) | IBaseQueryRelationBuilder<TEntity, TEntity, TEntity> QuerySingle(Expre...
    method QuerySingle (line 29) | IBaseQueryRelationBuilder<TEntity, TEntity, TEntity> QuerySingle<TOne>...
    method QuerySingle (line 35) | IBaseQueryRelationBuilder<TEntity, TEntity, TEntity> QuerySingle<TOne,...
    method QuerySingle (line 41) | IBaseQueryRelationBuilder<TEntity, TEntity, TEntity> QuerySingle<TOne,...
    method QuerySingle (line 47) | IBaseQueryRelationBuilder<TEntity, TEntity, TEntity> QuerySingle<TOne,...
    method QuerySingle (line 53) | IBaseQueryRelationBuilder<TEntity, TEntity, TEntity> QuerySingle<TOne,...
    method QuerySingle (line 59) | IBaseQueryRelationBuilder<TEntity, TEntity, TEntity> QuerySingle<TOne,...
    method QuerySingle (line 65) | IBaseQueryRelationBuilder<TEntity, TEntity, TEntity> QuerySingle<TOne,...
    method QuerySingle (line 71) | IBaseQueryRelationBuilder<TEntity, TEntity, TEntity> QuerySingle<TOne,...
    method QuerySingle (line 79) | IBaseQueryRelationBuilder<TEntity, TEntity, TEntity> QuerySingle(strin...
    method QueryInterpolatedSingle (line 85) | IBaseQueryRelationBuilder<TEntity, TEntity, TEntity> QueryInterpolated...
    method QueryBatch (line 91) | IBaseQueryRelationBuilder<TEntity, TEntity, List<TEntity>> QueryBatch(...
    method QueryBatch (line 98) | IBaseQueryRelationBuilder<TEntity, TEntity, List<TEntity>> QueryBatch(...
    method QueryBatch (line 104) | IBaseQueryRelationBuilder<TEntity, TEntity, List<TEntity>> QueryBatch<...
    method QueryBatch (line 110) | IBaseQueryRelationBuilder<TEntity, TEntity, List<TEntity>> QueryBatch<...
    method QueryBatch (line 116) | IBaseQueryRelationBuilder<TEntity, TEntity, List<TEntity>> QueryBatch<...
    method QueryBatch (line 122) | IBaseQueryRelationBuilder<TEntity, TEntity, List<TEntity>> QueryBatch<...
    method QueryBatch (line 128) | IBaseQueryRelationBuilder<TEntity, TEntity, List<TEntity>> QueryBatch<...
    method QueryBatch (line 134) | IBaseQueryRelationBuilder<TEntity, TEntity, List<TEntity>> QueryBatch<...
    method QueryBatch (line 140) | IBaseQueryRelationBuilder<TEntity, TEntity, List<TEntity>> QueryBatch<...
    method QueryBatch (line 146) | IBaseQueryRelationBuilder<TEntity, TEntity, List<TEntity>> QueryBatch<...
    method QueryBatch (line 154) | IBaseQueryRelationBuilder<TEntity, TEntity, List<TEntity>> QueryBatch(...
    method QueryInterpolatedBatch (line 160) | IBaseQueryRelationBuilder<TEntity, TEntity, List<TEntity>> QueryInterp...
    method Insert (line 166) | IBaseInsertRelationBuilder<TEntity, TEntity> Insert();
    method Delete (line 171) | IDeleteCommandBuilder<TEntity> Delete();
    method Update (line 177) | IUpdateCommandBuilder<TEntity> Update();

FILE: src/Venflow/Commands/InsertCacheKey.cs
  type InsertCacheKey (line 7) | internal readonly struct InsertCacheKey
    method InsertCacheKey (line 14) | internal InsertCacheKey(EntityRelation[] relations, InsertCacheKeyOpti...
    method Equals (line 20) | public bool Equals(
    method GetHashCode (line 42) | public new int GetHashCode()

FILE: src/Venflow/Commands/InsertCacheKeyComparer.cs
  class InsertCacheKeyComparer (line 5) | internal class InsertCacheKeyComparer : IEqualityComparer<InsertCacheKey>
    method InsertCacheKeyComparer (line 9) | private InsertCacheKeyComparer()
    method Equals (line 14) | public bool Equals(
    method GetHashCode (line 27) | public int GetHashCode(

FILE: src/Venflow/Commands/InsertRelationBuilder.cs
  class InsertRelationBuilder (line 6) | internal class InsertRelationBuilder<TRelationEntity, TRootEntity> : IIn...
    method InsertRelationBuilder (line 15) | internal InsertRelationBuilder(Entity root, Entity parent, VenflowInse...
    method With (line 23) | public IInsertRelationBuilder<TToEntity, TRootEntity> With<TToEntity>(...
    method With (line 27) | public IInsertRelationBuilder<TToEntity, TRootEntity> With<TToEntity>(...
    method With (line 31) | public IInsertRelationBuilder<TToEntity, TRootEntity> With<TToEntity>(...
    method AndWith (line 35) | public IInsertRelationBuilder<TToEntity, TRootEntity> AndWith<TToEntit...
    method AndWith (line 39) | public IInsertRelationBuilder<TToEntity, TRootEntity> AndWith<TToEntit...
    method AndWith (line 43) | public IInsertRelationBuilder<TToEntity, TRootEntity> AndWith<TToEntit...
    method Build (line 47) | IInsertCommand<TRootEntity> ISpecficVenflowCommandBuilder<IInsertComma...
    method Log (line 50) | public IBaseInsertRelationBuilder<TRootEntity, TRootEntity> Log(bool s...
    method LogTo (line 53) | public IBaseInsertRelationBuilder<TRootEntity, TRootEntity> LogTo(Logg...
    method LogTo (line 56) | public IBaseInsertRelationBuilder<TRootEntity, TRootEntity> LogTo(para...
    method InsertAsync (line 59) | Task<int> IInsertCommandBuilder<TRootEntity>.InsertAsync(TRootEntity e...
    method InsertAsync (line 62) | Task<int> IInsertCommandBuilder<TRootEntity>.InsertAsync(IList<TRootEn...
    method WithAll (line 65) | IBaseInsertRelationBuilder<TRootEntity, TRootEntity> IBaseInsertRelati...

FILE: src/Venflow/Commands/InterpolatedSqlExpressionConverter.cs
  class InterpolatedSqlExpressionConverter (line 9) | internal static class InterpolatedSqlExpressionConverter
    method GetConvertedDelegate (line 11) | internal static (Delegate function, SqlExpressionOptions options, Type...
    method ExtractInstance (line 62) | internal static object? ExtractInstance(Expression expression, Type type)
    class InstanceExpressionExtractor (line 71) | private class InstanceExpressionExtractor : ExpressionVisitor
      method InstanceExpressionExtractor (line 77) | internal InstanceExpressionExtractor(Type type)
      method Visit (line 82) | #if !NET48
      method VisitConstant (line 93) | protected override Expression VisitConstant(ConstantExpression node)
    class ConstantExpressionReplacer (line 106) | private class ConstantExpressionReplacer : ExpressionVisitor
      method ConstantExpressionReplacer (line 116) | internal ConstantExpressionReplacer(Type? displayClassType, Type? th...
      method VisitConstant (line 137) | protected override Expression VisitConstant(ConstantExpression node)
    class ConstantExpressionVisitor (line 160) | private class ConstantExpressionVisitor : ExpressionVisitor
      method Visit (line 165) | #if !NET48
      method VisitConstant (line 177) | protected override Expression VisitConstant(ConstantExpression node)

FILE: src/Venflow/Commands/QueryCacheKey.cs
  type QueryCacheKey (line 8) | internal readonly struct QueryCacheKey
    method QueryCacheKey (line 16) | public QueryCacheKey(Entity entity, Type returnType, EntityRelation[]?...
    method Equals (line 25) | public bool Equals(
    method GetHashCode (line 48) | public new int GetHashCode()

FILE: src/Venflow/Commands/QueryCacheKeyComparer.cs
  class QueryCacheKeyComparer (line 5) | internal class QueryCacheKeyComparer : IEqualityComparer<QueryCacheKey>
    method QueryCacheKeyComparer (line 9) | private QueryCacheKeyComparer()
    method Equals (line 14) | public bool Equals(
    method GetHashCode (line 27) | public int GetHashCode(

FILE: src/Venflow/Commands/QueryRelationBuilder.cs
  class QueryRelationBuilder (line 7) | internal class QueryRelationBuilder<TRelationEntity, TRootEntity, TRetur...
    method QueryRelationBuilder (line 17) | internal QueryRelationBuilder(Entity parent, VenflowQueryCommandBuilde...
    method QueryRelationBuilder (line 24) | internal QueryRelationBuilder(Entity root, Entity parent, VenflowQuery...
    method Build (line 32) | public IQueryCommand<TRootEntity, TReturn> Build()
    method JoinWith (line 35) | public IQueryRelationBuilder<TToEntity, TRootEntity, TReturn> JoinWith...
    method JoinWith (line 38) | public IQueryRelationBuilder<TToEntity, TRootEntity, TReturn> JoinWith...
    method JoinWith (line 41) | public IQueryRelationBuilder<TToEntity, TRootEntity, TReturn> JoinWith...
    method ThenWith (line 44) | public IQueryRelationBuilder<TToEntity, TRootEntity, TReturn> ThenWith...
    method ThenWith (line 47) | public IQueryRelationBuilder<TToEntity, TRootEntity, TReturn> ThenWith...
    method ThenWith (line 50) | public IQueryRelationBuilder<TToEntity, TRootEntity, TReturn> ThenWith...
    method ThenLeftWith (line 53) | IQueryRelationBuilder<TToEntity, TRootEntity, TReturn> IQueryRelationB...
    method ThenLeftWith (line 56) | IQueryRelationBuilder<TToEntity, TRootEntity, TReturn> IQueryRelationB...
    method ThenLeftWith (line 59) | IQueryRelationBuilder<TToEntity, TRootEntity, TReturn> IQueryRelationB...
    method ThenRightWith (line 62) | IQueryRelationBuilder<TToEntity, TRootEntity, TReturn> IQueryRelationB...
    method ThenRightWith (line 65) | IQueryRelationBuilder<TToEntity, TRootEntity, TReturn> IQueryRelationB...
    method ThenRightWith (line 68) | IQueryRelationBuilder<TToEntity, TRootEntity, TReturn> IQueryRelationB...
    method ThenFullWith (line 71) | IQueryRelationBuilder<TToEntity, TRootEntity, TReturn> IQueryRelationB...
    method ThenFullWith (line 74) | IQueryRelationBuilder<TToEntity, TRootEntity, TReturn> IQueryRelationB...
    method ThenFullWith (line 77) | IQueryRelationBuilder<TToEntity, TRootEntity, TReturn> IQueryRelationB...
    method LeftJoinWith (line 80) | IQueryRelationBuilder<TToEntity, TRootEntity, TReturn> IBaseQueryRelat...
    method LeftJoinWith (line 83) | IQueryRelationBuilder<TToEntity, TRootEntity, TReturn> IBaseQueryRelat...
    method LeftJoinWith (line 86) | IQueryRelationBuilder<TToEntity, TRootEntity, TReturn> IBaseQueryRelat...
    method RightJoinWith (line 89) | IQueryRelationBuilder<TToEntity, TRootEntity, TReturn> IBaseQueryRelat...
    method RightJoinWith (line 92) | IQueryRelationBuilder<TToEntity, TRootEntity, TReturn> IBaseQueryRelat...
    method RightJoinWith (line 95) | IQueryRelationBuilder<TToEntity, TRootEntity, TReturn> IBaseQueryRelat...
    method FullJoinWith (line 98) | IQueryRelationBuilder<TToEntity, TRootEntity, TReturn> IBaseQueryRelat...
    method FullJoinWith (line 101) | IQueryRelationBuilder<TToEntity, TRootEntity, TReturn> IBaseQueryRelat...
    method FullJoinWith (line 104) | IQueryRelationBuilder<TToEntity, TRootEntity, TReturn> IBaseQueryRelat...
    method TrackChanges (line 107) | public IBaseQueryRelationBuilder<TRootEntity, TRootEntity, TReturn> Tr...
    method Log (line 110) | public IBaseQueryRelationBuilder<TRootEntity, TRootEntity, TReturn> Lo...
    method LogTo (line 113) | public IBaseQueryRelationBuilder<TRootEntity, TRootEntity, TReturn> Lo...
    method LogTo (line 116) | public IBaseQueryRelationBuilder<TRootEntity, TRootEntity, TReturn> Lo...
    method QueryAsync (line 119) | public Task<TReturn?> QueryAsync(CancellationToken cancellationToken =...
    method AddFormatter (line 122) | public IBaseQueryRelationBuilder<TRootEntity, TRootEntity, TReturn> Ad...

FILE: src/Venflow/Commands/RelationBuilderValues.cs
  class RelationBuilderValues (line 8) | internal class RelationBuilderValues : IRelationPath
    method RelationBuilderValues (line 20) | internal RelationBuilderValues(Entity entity)
    method GetFlattenedRelations (line 28) | internal EntityRelation[] GetFlattenedRelations()
    method BaseRelationWith (line 42) | internal Entity BaseRelationWith<TRootEntity, TTarget>(Entity parent, ...
    method BaseRelationWith (line 58) | internal Entity BaseRelationWith<TRootEntity, TTarget, T>(Entity paren...
    method BaseAndWith (line 74) | internal Entity BaseAndWith<TRelationEntity, TTarget>(Entity parent, E...
    method BaseAndWith (line 90) | internal Entity BaseAndWith<TRelationEntity, TTarget, T>(Entity parent...
    method AddToPath (line 106) | private void AddToPath<T>(EntityRelation relation, T value, bool newFu...
    method AddToPath (line 139) | private void AddToPath(EntityRelation relation, bool newFullPath)

FILE: src/Venflow/Commands/RelationPath.cs
  type IRelationPath (line 5) | internal interface IRelationPath
  class RelationPath (line 11) | internal class RelationPath : IRelationPath
    method RelationPath (line 17) | internal RelationPath(EntityRelation currentRelation)
    method AddToPath (line 24) | internal RelationPath AddToPath(EntityRelation relation, out bool isNew)
    method AddToPath (line 47) | internal RelationPath AddToPath<T>(EntityRelation relation, T value, o...
    method RelationPath (line 75) | internal RelationPath(EntityRelation currentRelation, T value) : base(...
  class RelationPath (line 71) | internal class RelationPath<T> : RelationPath
    method RelationPath (line 17) | internal RelationPath(EntityRelation currentRelation)
    method AddToPath (line 24) | internal RelationPath AddToPath(EntityRelation relation, out bool isNew)
    method AddToPath (line 47) | internal RelationPath AddToPath<T>(EntityRelation relation, T value, o...
    method RelationPath (line 75) | internal RelationPath(EntityRelation currentRelation, T value) : base(...

FILE: src/Venflow/Commands/SqlQueryCacheKey.cs
  type SqlQueryCacheKey (line 5) | internal readonly struct SqlQueryCacheKey
    method SqlQueryCacheKey (line 15) | public SqlQueryCacheKey(string sql, bool isChangeTracking, Type return...
    method Equals (line 22) | public bool Equals(
    method GetHashCode (line 31) | public new int GetHashCode()

FILE: src/Venflow/Commands/SqlQueryCacheKeyComparer.cs
  class SqlQueryCacheKeyComparer (line 5) | internal class SqlQueryCacheKeyComparer : IEqualityComparer<SqlQueryCach...
    method SqlQueryCacheKeyComparer (line 9) | private SqlQueryCacheKeyComparer()
    method Equals (line 14) | public bool Equals(
    method GetHashCode (line 27) | public int GetHashCode(

FILE: src/Venflow/Commands/VenflowBaseCommand.cs
  class VenflowBaseCommand (line 6) | internal abstract class VenflowBaseCommand<TEntity> where TEntity : clas...
    method VenflowBaseCommand (line 21) | protected VenflowBaseCommand(Database database, Entity<TEntity> entity...
    method Log (line 35) | protected bool Log(Enums.CommandType commandType, Exception? exception...
    method ValidateConnectionAsync (line 56) | protected ValueTask ValidateConnectionAsync(bool hasGeneratedCommands ...
    method GetTransactionAsync (line 73) | protected ValueTask<IDatabaseTransaction> GetTransactionAsync(

FILE: src/Venflow/Commands/VenflowCommandBuilder.cs
  class VenflowCommandBuilder (line 7) | internal class VenflowCommandBuilder<TEntity> : IVenflowCommandBuilder<T...
    method VenflowCommandBuilder (line 15) | internal VenflowCommandBuilder(Database database, Entity<TEntity> enti...
    method QuerySingle (line 24) | public IBaseQueryRelationBuilder<TEntity, TEntity, TEntity> QuerySingl...
    method QuerySingleBase (line 29) | internal IBaseQueryRelationBuilder<TEntity, TEntity, TEntity> QuerySin...
    method QuerySingle (line 34) | public IBaseQueryRelationBuilder<TEntity, TEntity, TEntity> QuerySingl...
    method QuerySingle (line 39) | public IBaseQueryRelationBuilder<TEntity, TEntity, TEntity> QuerySingl...
    method QuerySingle (line 45) | public IBaseQueryRelationBuilder<TEntity, TEntity, TEntity> QuerySingl...
    method QuerySingle (line 52) | public IBaseQueryRelationBuilder<TEntity, TEntity, TEntity> QuerySingl...
    method QuerySingle (line 60) | public IBaseQueryRelationBuilder<TEntity, TEntity, TEntity> QuerySingl...
    method QuerySingle (line 69) | public IBaseQueryRelationBuilder<TEntity, TEntity, TEntity> QuerySingl...
    method QuerySingle (line 79) | public IBaseQueryRelationBuilder<TEntity, TEntity, TEntity> QuerySingl...
    method QuerySingle (line 90) | public IBaseQueryRelationBuilder<TEntity, TEntity, TEntity> QuerySingl...
    method QuerySingle (line 102) | public IBaseQueryRelationBuilder<TEntity, TEntity, TEntity> QuerySingl...
    method QuerySingle (line 115) | public IBaseQueryRelationBuilder<TEntity, TEntity, TEntity> QuerySingl...
    method QuerySingle (line 120) | public IBaseQueryRelationBuilder<TEntity, TEntity, TEntity> QuerySingl...
    method QueryInterpolatedSingle (line 125) | public IBaseQueryRelationBuilder<TEntity, TEntity, TEntity> QueryInter...
    method QueryBatch (line 130) | public IBaseQueryRelationBuilder<TEntity, TEntity, List<TEntity>> Quer...
    method QueryBatchBase (line 135) | internal IBaseQueryRelationBuilder<TEntity, TEntity, List<TEntity>> Qu...
    method QueryBatch (line 140) | public IBaseQueryRelationBuilder<TEntity, TEntity, List<TEntity>> Quer...
    method QueryBatch (line 145) | public IBaseQueryRelationBuilder<TEntity, TEntity, List<TEntity>> Quer...
    method QueryBatch (line 151) | public IBaseQueryRelationBuilder<TEntity, TEntity, List<TEntity>> Quer...
    method QueryBatch (line 158) | public IBaseQueryRelationBuilder<TEntity, TEntity, List<TEntity>> Quer...
    method QueryBatch (line 166) | public IBaseQueryRelationBuilder<TEntity, TEntity, List<TEntity>> Quer...
    method QueryBatch (line 175) | public IBaseQueryRelationBuilder<TEntity, TEntity, List<TEntity>> Quer...
    method QueryBatch (line 185) | public IBaseQueryRelationBuilder<TEntity, TEntity, List<TEntity>> Quer...
    method QueryBatch (line 196) | public IBaseQueryRelationBuilder<TEntity, TEntity, List<TEntity>> Quer...
    method QueryBatch (line 208) | public IBaseQueryRelationBuilder<TEntity, TEntity, List<TEntity>> Quer...
    method QueryBatch (line 221) | public IBaseQueryRelationBuilder<TEntity, TEntity, List<TEntity>> Quer...
    method QueryBatch (line 226) | public IBaseQueryRelationBuilder<TEntity, TEntity, List<TEntity>> Quer...
    method QueryInterpolatedBatch (line 231) | public IBaseQueryRelationBuilder<TEntity, TEntity, List<TEntity>> Quer...
    method Insert (line 240) | public IBaseInsertRelationBuilder<TEntity, TEntity> Insert()
    method Delete (line 249) | public IDeleteCommandBuilder<TEntity> Delete()
    method Update (line 258) | public IUpdateCommandBuilder<TEntity> Update()

FILE: src/Venflow/Commands/VenflowDeleteCommand.cs
  class VenflowDeleteCommand (line 6) | internal class VenflowDeleteCommand<TEntity> : VenflowBaseCommand<TEntit...
    method VenflowDeleteCommand (line 11) | internal VenflowDeleteCommand(Database database, Entity<TEntity> entit...
    method DeleteAsync (line 16) | ValueTask<int> IDeleteCommand<TEntity>.DeleteAsync(TEntity entity, Can...
    method DeleteAsync (line 41) | ValueTask<int> IDeleteCommand<TEntity>.DeleteAsync(IEnumerable<TEntity...
    method DeleteAsync (line 76) | ValueTask<int> IDeleteCommand<TEntity>.DeleteAsync(IList<TEntity> enti...
    method DeleteAsync (line 110) | ValueTask<int> IDeleteCommand<TEntity>.DeleteAsync(List<TEntity> entit...
    method DeleteAsync (line 121) | ValueTask<int> IDeleteCommand<TEntity>.DeleteAsync(TEntity[] entities,...
    method DeleteBase (line 132) | private string DeleteBase(Span<TEntity> entities)
    method ExecuteBase (line 160) | private async Task<int> ExecuteBase(Enums.CommandType commandType, Can...
    method DisposeAsync (line 207) | public ValueTask DisposeAsync()

FILE: src/Venflow/Commands/VenflowDeleteCommandBuilder.cs
  class VenflowDeleteCommandBuilder (line 6) | internal class VenflowDeleteCommandBuilder<TEntity> : IDeleteCommandBuil...
    method VenflowDeleteCommandBuilder (line 16) | internal VenflowDeleteCommandBuilder(Database database, Entity<TEntity...
    method Build (line 25) | public IDeleteCommand<TEntity> Build()
    method DeleteAsync (line 32) | ValueTask<int> IDeleteCommandBuilder<TEntity>.DeleteAsync(TEntity enti...
    method DeleteAsync (line 39) | ValueTask<int> IDeleteCommandBuilder<TEntity>.DeleteAsync(IEnumerable<...
    method DeleteAsync (line 46) | ValueTask<int> IDeleteCommandBuilder<TEntity>.DeleteAsync(IList<TEntit...
    method DeleteAsync (line 53) | ValueTask<int> IDeleteCommandBuilder<TEntity>.DeleteAsync(List<TEntity...
    method DeleteAsync (line 60) | ValueTask<int> IDeleteCommandBuilder<TEntity>.DeleteAsync(TEntity[] en...
    method Log (line 67) | public IDeleteCommandBuilder<TEntity> Log(bool shouldLog = true)
    method LogTo (line 74) | public IDeleteCommandBuilder<TEntity> LogTo(LoggerCallback logger)
    method LogTo (line 81) | public IDeleteCommandBuilder<TEntity> LogTo(params LoggerCallback[] lo...

FILE: src/Venflow/Commands/VenflowInsertCommand.cs
  class VenflowInsertCommand (line 7) | internal class VenflowInsertCommand<TEntity> : VenflowBaseCommand<TEntit...
    method VenflowInsertCommand (line 17) | internal VenflowInsertCommand(Database database, Entity<TEntity> entit...
    method VenflowInsertCommand (line 22) | internal VenflowInsertCommand(Database database, Entity<TEntity> entit...
    method InsertAsync (line 28) | async Task<int> IInsertCommand<TEntity>.InsertAsync(TEntity entity, Ca...
    method InsertAsync (line 111) | async Task<int> IInsertCommand<TEntity>.InsertAsync(IList<TEntity> ent...
    method Log (line 194) | private void Log(CommandType commandType)
    method DisposeAsync (line 206) | public ValueTask DisposeAsync()

FILE: src/Venflow/Commands/VenflowInsertCommandBuilder.cs
  class VenflowInsertCommandBuilder (line 7) | internal class VenflowInsertCommandBuilder<TEntity> : IBaseInsertRelatio...
    method VenflowInsertCommandBuilder (line 18) | internal VenflowInsertCommandBuilder(Database database, Entity<TEntity...
    method Build (line 26) | public IInsertCommand<TEntity> Build()
    method InsertAsync (line 38) | public Task<int> InsertAsync(TEntity entity, CancellationToken cancell...
    method InsertAsync (line 43) | public Task<int> InsertAsync(IList<TEntity> entities, CancellationToke...
    method WithAll (line 48) | public IBaseInsertRelationBuilder<TEntity, TEntity> WithAll()
    method With (line 55) | IInsertRelationBuilder<TToEntity, TEntity> IBaseInsertRelationBuilder<...
    method With (line 62) | IInsertRelationBuilder<TToEntity, TEntity> IBaseInsertRelationBuilder<...
    method With (line 69) | IInsertRelationBuilder<TToEntity, TEntity> IBaseInsertRelationBuilder<...
    method Log (line 76) | public IBaseInsertRelationBuilder<TEntity, TEntity> Log(bool shouldLog...
    method LogTo (line 83) | public IBaseInsertRelationBuilder<TEntity, TEntity> LogTo(LoggerCallba...
    method LogTo (line 90) | public IBaseInsertRelationBuilder<TEntity, TEntity> LogTo(params Logge...

FILE: src/Venflow/Commands/VenflowQueryCommand.cs
  class VenflowQueryCommand (line 6) | internal class VenflowQueryCommand<TEntity, TReturn> : VenflowBaseComman...
    method VenflowQueryCommand (line 14) | internal VenflowQueryCommand(Database database, Entity<TEntity> entity...
    method QueryAsync (line 22) | async Task<TReturn?> IQueryCommand<TEntity, TReturn>.QueryAsync(Cancel...
    method PrepareAsync (line 63) | async Task<IQueryCommand<TEntity, TReturn>> IQueryCommand<TEntity, TRe...
    method UnprepareAsync (line 72) | async Task<IQueryCommand<TEntity, TReturn>> IQueryCommand<TEntity, TRe...
    method DisposeAsync (line 81) | public async ValueTask DisposeAsync()

FILE: src/Venflow/Commands/VenflowQueryCommandBuilder.cs
  class VenflowQueryCommandBuilder (line 11) | internal class VenflowQueryCommandBuilder<TEntity, TReturn> : IBaseQuery...
    method VenflowQueryCommandBuilder (line 30) | private VenflowQueryCommandBuilder(Database database, Entity<TEntity> ...
    method VenflowQueryCommandBuilder (line 42) | internal VenflowQueryCommandBuilder(Database database, Entity<TEntity>...
    method VenflowQueryCommandBuilder (line 47) | internal VenflowQueryCommandBuilder(Database database, Entity<TEntity>...
    method VenflowQueryCommandBuilder (line 52) | internal VenflowQueryCommandBuilder(Database database, Entity<TEntity>...
    method VenflowQueryCommandBuilder (line 58) | internal VenflowQueryCommandBuilder(Database database, Entity<TEntity>...
    method TrackChanges (line 66) | public IBaseQueryRelationBuilder<TEntity, TEntity, TReturn> TrackChang...
    method Log (line 73) | public IBaseQueryRelationBuilder<TEntity, TEntity, TReturn> Log(bool s...
    method LogTo (line 80) | public IBaseQueryRelationBuilder<TEntity, TEntity, TReturn> LogTo(Logg...
    method LogTo (line 87) | public IBaseQueryRelationBuilder<TEntity, TEntity, TReturn> LogTo(para...
    method AddFormatter (line 94) | public IBaseQueryRelationBuilder<TEntity, TEntity, TReturn> AddFormatt...
    method Build (line 101) | public IQueryCommand<TEntity, TReturn> Build()
    method BuildFromExpression (line 133) | private void BuildFromExpression()
    method GetFinalizedSqlString (line 368) | private (string Sql, List<(int Index, NpgsqlDbType DbType)> DbTypes) G...
    method BuildFromInterpolatedSql (line 453) | private void BuildFromInterpolatedSql()
    method AppendJoins (line 547) | private void AppendJoins(StringBuilder sb)
    method QueryAsync (line 600) | public Task<TReturn?> QueryAsync(CancellationToken cancellationToken =...
    method JoinWith (line 607) | public IQueryRelationBuilder<TToEntity, TEntity, TReturn> JoinWith<TTo...
    method JoinWith (line 614) | public IQueryRelationBuilder<TToEntity, TEntity, TReturn> JoinWith<TTo...
    method JoinWith (line 621) | public IQueryRelationBuilder<TToEntity, TEntity, TReturn> JoinWith<TTo...
    method LeftJoinWith (line 627) | IQueryRelationBuilder<TToEntity, TEntity, TReturn> IBaseQueryRelationB...
    method LeftJoinWith (line 630) | IQueryRelationBuilder<TToEntity, TEntity, TReturn> IBaseQueryRelationB...
    method LeftJoinWith (line 633) | IQueryRelationBuilder<TToEntity, TEntity, TReturn> IBaseQueryRelationB...
    method RightJoinWith (line 636) | IQueryRelationBuilder<TToEntity, TEntity, TReturn> IBaseQueryRelationB...
    method RightJoinWith (line 639) | IQueryRelationBuilder<TToEntity, TEntity, TReturn> IBaseQueryRelationB...
    method RightJoinWith (line 642) | IQueryRelationBuilder<TToEntity, TEntity, TReturn> IBaseQueryRelationB...
    method FullJoinWith (line 645) | IQueryRelationBuilder<TToEntity, TEntity, TReturn> IBaseQueryRelationB...
    method FullJoinWith (line 648) | IQueryRelationBuilder<TToEntity, TEntity, TReturn> IBaseQueryRelationB...
    method FullJoinWith (line 651) | IQueryRelationBuilder<TToEntity, TEntity, TReturn> IBaseQueryRelationB...

FILE: src/Venflow/Commands/VenflowUpdateCommand.cs
  class VenflowUpdateCommand (line 9) | internal class VenflowUpdateCommand<TEntity> : VenflowBaseCommand<TEntit...
    method VenflowUpdateCommand (line 13) | internal VenflowUpdateCommand(Database database, Entity<TEntity> entit...
    method UpdateAsync (line 18) | ValueTask IUpdateCommand<TEntity>.UpdateAsync(TEntity entity, Cancella...
    method UpdateAsync (line 37) | ValueTask IUpdateCommand<TEntity>.UpdateAsync(IEnumerable<TEntity> ent...
    method UpdateAsync (line 62) | ValueTask IUpdateCommand<TEntity>.UpdateAsync(IList<TEntity> entities,...
    method ExecuteBase (line 85) | private async Task ExecuteBase(Enums.CommandType commandType, bool sho...
    method BaseUpdate (line 138) | #if NET5_0_OR_GREATER
    method DisposeAsync (line 200) | public ValueTask DisposeAsync()

FILE: src/Venflow/Commands/VenflowUpdateCommandBuilder.cs
  class VenflowUpdateCommandBuilder (line 6) | internal class VenflowUpdateCommandBuilder<TEntity> : IUpdateCommandBuil...
    method VenflowUpdateCommandBuilder (line 16) | internal VenflowUpdateCommandBuilder(Database database, Entity<TEntity...
    method Build (line 25) | public IUpdateCommand<TEntity> Build()
    method UpdateAsync (line 32) | ValueTask IUpdateCommandBuilder<TEntity>.UpdateAsync(TEntity entity, C...
    method UpdateAsync (line 39) | ValueTask IUpdateCommandBuilder<TEntity>.UpdateAsync(IEnumerable<TEnti...
    method UpdateAsync (line 46) | ValueTask IUpdateCommandBuilder<TEntity>.UpdateAsync(List<TEntity> ent...
    method UpdateAsync (line 53) | ValueTask IUpdateCommandBuilder<TEntity>.UpdateAsync(TEntity[] entitie...
    method UpdateAsync (line 60) | ValueTask IUpdateCommandBuilder<TEntity>.UpdateAsync(IList<TEntity> en...
    method Log (line 67) | public IUpdateCommandBuilder<TEntity> Log(bool shouldLog = true)
    method LogTo (line 74) | public IUpdateCommandBuilder<TEntity> LogTo(LoggerCallback logger)
    method LogTo (line 81) | public IUpdateCommandBuilder<TEntity> LogTo(params LoggerCallback[] lo...

FILE: src/Venflow/Database.cs
  class DatabaseConfigurationCache (line 11) | internal static class DatabaseConfigurationCache
  class Database (line 26) | public abstract class Database : IAsyncDisposable, IDisposable
    method Database (line 44) | protected Database(string connectionString)
    method Database (line 53) | protected Database(DatabaseOptionsBuilder optionsBuilder)
    method BeginTransactionAsync (line 75) | public async ValueTask<IDatabaseTransaction> BeginTransactionAsync(
    method BeginTransactionAsync (line 106) | public async ValueTask<IDatabaseTransaction> BeginTransactionAsync(Iso...
    method GetOrCreateTransactionAsync (line 122) | internal ValueTask<IDatabaseTransaction> GetOrCreateTransactionAsync()
    method GetOrCreateTransactionAsync (line 132) | internal async ValueTask<IDatabaseTransaction> GetOrCreateTransactionA...
    method ExecuteAsync (line 150) | public async Task<int> ExecuteAsync(string sql, CancellationToken canc...
    method ExecuteAsync (line 167) | public async Task<int> ExecuteAsync(string sql, IList<NpgsqlParameter>...
    method ExecuteAsync (line 188) | public async Task<int> ExecuteAsync(string sql, params NpgsqlParameter...
    method ExecuteInterpolatedAsync (line 209) | public async Task<int> ExecuteInterpolatedAsync(FormattableString sql,...
    method ExecuteAsync (line 229) | public async Task<T> ExecuteAsync<T>(string sql, CancellationToken can...
    method ExecuteAsync (line 247) | public async Task<T> ExecuteAsync<T>(string sql, IList<NpgsqlParameter...
    method ExecuteAsync (line 269) | public async Task<T> ExecuteAsync<T>(string sql, params NpgsqlParamete...
    method ExecuteInterpolatedAsync (line 291) | public async Task<T> ExecuteInterpolatedAsync<T>(FormattableString sql...
    method Custom (line 310) | public TableBase<TEntity> Custom<TEntity>() where TEntity : class, new()
    method GetConnection (line 346) | public NpgsqlConnection GetConnection()
    method ExecuteLoggers (line 354) | internal void ExecuteLoggers(NpgsqlCommand command, Venflow.Enums.Comm...
    method ExecuteLoggers (line 357) | internal void ExecuteLoggers(IReadOnlyList<LoggerCallback> loggers, Np...
    method Build (line 365) | private void Build()
    method ValidateConnectionAsync (line 392) | private ValueTask ValidateConnectionAsync()
    method Configure (line 413) | protected virtual void Configure(DatabaseConfigurationOptionsBuilder o...
    method DisposeAsync (line 419) | public ValueTask DisposeAsync()
    method Dispose (line 436) | public void Dispose()

FILE: src/Venflow/DatabaseConfiguration.cs
  class DatabaseConfiguration (line 5) | internal class DatabaseConfiguration
    method DatabaseConfiguration (line 13) | internal DatabaseConfiguration(Action<Database, IList<Entity>> databas...
    method InstantiateDatabase (line 23) | internal void InstantiateDatabase(Database database)

FILE: src/Venflow/DatabaseConfigurationOptionsBuilder.cs
  class DatabaseConfigurationOptionsBuilder (line 10) | public class DatabaseConfigurationOptionsBuilder
    method DatabaseConfigurationOptionsBuilder (line 15) | internal DatabaseConfigurationOptionsBuilder(Type effectiveDatabaseType)
    method UseConfigurations (line 27) | public DatabaseConfigurationOptionsBuilder UseConfigurations<T>()
    method UseConfigurations (line 40) | public DatabaseConfigurationOptionsBuilder UseConfigurations(Assembly ...
    method UseConfigurations (line 53) | public DatabaseConfigurationOptionsBuilder UseConfigurations(params As...
    method SetNamingConvention (line 65) | public DatabaseConfigurationOptionsBuilder SetNamingConvention<T>()
    method SetNamingConvention (line 76) | public DatabaseConfigurationOptionsBuilder SetNamingConvention(INpgsql...
    method RegisterPostgresEnum (line 90) | public DatabaseConfigurationOptionsBuilder RegisterPostgresEnum<TEnum>...

FILE: src/Venflow/DatabaseOptionsBuilder.cs
  class DatabaseOptionsBuilder (line 17) | public class DatabaseOptionsBuilder<TDatabase> : DatabaseOptionsBuilder
    method LogTo (line 28) | public DatabaseOptionsBuilder<TDatabase> LogTo(LoggerCallback loggerCa...
    method LogTo (line 45) | public DatabaseOptionsBuilder<TDatabase> LogTo(Action<string> loggerCa...
    method DatabaseOptionsBuilder (line 94) | private protected DatabaseOptionsBuilder()
  class DatabaseOptionsBuilder (line 80) | public abstract class DatabaseOptionsBuilder
    method LogTo (line 28) | public DatabaseOptionsBuilder<TDatabase> LogTo(LoggerCallback loggerCa...
    method LogTo (line 45) | public DatabaseOptionsBuilder<TDatabase> LogTo(Action<string> loggerCa...
    method DatabaseOptionsBuilder (line 94) | private protected DatabaseOptionsBuilder()

FILE: src/Venflow/DatabaseTransaction.cs
  class DatabaseTransaction (line 5) | internal class DatabaseTransaction : IDatabaseTransaction
    method DatabaseTransaction (line 11) | internal DatabaseTransaction(NpgsqlTransaction transaction)
    method Commit (line 16) | void IDatabaseTransaction.Commit()
    method CommitAsync (line 19) | Task IDatabaseTransaction.CommitAsync(CancellationToken cancellationTo...
    method Release (line 22) | void IDatabaseTransaction.Release(string name)
    method ReleaseAsync (line 25) | Task IDatabaseTransaction.ReleaseAsync(string name, CancellationToken ...
    method Rollback (line 28) | void IDatabaseTransaction.Rollback()
    method Rollback (line 31) | void IDatabaseTransaction.Rollback(string name)
    method RollbackAsync (line 34) | Task IDatabaseTransaction.RollbackAsync(CancellationToken cancellation...
    method RollbackAsync (line 37) | Task IDatabaseTransaction.RollbackAsync(string name, CancellationToken...
    method Save (line 40) | void IDatabaseTransaction.Save(string name)
    method SaveAsync (line 43) | Task IDatabaseTransaction.SaveAsync(string name, CancellationToken can...
    method GetNpgsqlTransaction (line 46) | NpgsqlTransaction IDatabaseTransaction.GetNpgsqlTransaction()
    method Dispose (line 49) | void IDisposable.Dispose()
    method DisposeAsync (line 56) | ValueTask IAsyncDisposable.DisposeAsync()
  type IDatabaseTransaction (line 67) | public interface IDatabaseTransaction : IAsyncDisposable, IDisposable
    method Commit (line 72) | void Commit();
    method CommitAsync (line 78) | Task CommitAsync(CancellationToken cancellationToken = default);
    method Rollback (line 83) | void Rollback();
    method RollbackAsync (line 89) | Task RollbackAsync(CancellationToken cancellationToken = default);
    method Save (line 96) | void Save(string name);
    method SaveAsync (line 104) | Task SaveAsync(string name, CancellationToken cancellationToken = defa...
    method Rollback (line 110) | void Rollback(string name);
    method RollbackAsync (line 117) | Task RollbackAsync(string name, CancellationToken cancellationToken = ...
    method Release (line 123) | void Release(string name);
    method ReleaseAsync (line 130) | Task ReleaseAsync(string name, CancellationToken cancellationToken = d...
    method GetNpgsqlTransaction (line 139) | NpgsqlTransaction GetNpgsqlTransaction();

FILE: src/Venflow/DualKeyCollection.cs
  class DualKeyCollection (line 3) | internal class DualKeyCollection<TKeyTwo, TValue>
    method DualKeyCollection (line 14) | internal DualKeyCollection(TValue[] firstCollction, Dictionary<TKeyTwo...
    method TryGetValue (line 24) | internal bool TryGetValue(TKeyTwo key, out TValue? value)

FILE: src/Venflow/Dynamic/IL/IILBaseInst.cs
  type IILBaseInst (line 5) | internal interface IILBaseInst
    method WriteIL (line 7) | void WriteIL(ILGenerator ilGenerator);

FILE: src/Venflow/Dynamic/IL/ILAsyncGenerator.cs
  class ILAsyncGenerator (line 6) | internal class ILAsyncGenerator
    method ILAsyncGenerator (line 22) | internal ILAsyncGenerator(ILGenerator ilGenerator, ILSwitchBuilder ilS...
    method WriteAsyncMethodAwaiter (line 33) | internal void WriteAsyncMethodAwaiter(Type returnType, LocalBuilder ta...
    method WriteAsyncValueTaskMethodAwaiter (line 95) | internal void WriteAsyncValueTaskMethodAwaiter(LocalBuilder valueTaskL...

FILE: src/Venflow/Dynamic/IL/ILFieldInfo.cs
  type ILFieldInfo (line 5) | internal struct ILFieldInfo : IILBaseInst
    method ILFieldInfo (line 10) | internal ILFieldInfo(OpCode opCode, FieldInfo value)
    method WriteIL (line 16) | void IILBaseInst.WriteIL(ILGenerator ilGenerator)

FILE: src/Venflow/Dynamic/IL/ILGeneratorExtensions.cs
  class ILGeneratorExtensions (line 5) | internal static class ILGeneratorExtensions
    method EmitSwitch (line 7) | internal static ILSwitchBuilder EmitSwitch(this ILGenerator ilGenerato...

FILE: src/Venflow/Dynamic/IL/ILGhostGenerator.cs
  class ILGhostGenerator (line 5) | internal class ILGhostGenerator
    method ILGhostGenerator (line 10) | internal ILGhostGenerator()
    method EnsureCapacity (line 15) | internal void EnsureCapacity()
    method Emit (line 27) | internal void Emit(OpCode opCode)
    method Emit (line 35) | internal void Emit(OpCode opCode, FieldInfo field)
    method WriteIL (line 42) | internal void WriteIL(ILGenerator ilGenerator)

FILE: src/Venflow/Dynamic/IL/ILInst.cs
  type ILInst (line 5) | internal struct ILInst : IILBaseInst
    method ILInst (line 9) | internal ILInst(OpCode opCode)
    method WriteIL (line 14) | void IILBaseInst.WriteIL(ILGenerator ilGenerator)

FILE: src/Venflow/Dynamic/IL/ILSwitchBuilder.cs
  class ILSwitchBuilder (line 5) | internal class ILSwitchBuilder
    method ILSwitchBuilder (line 12) | internal ILSwitchBuilder(ILGenerator iLGenerator, int labelCount)
    method MarkCase (line 23) | internal void MarkCase()
    method GetLabels (line 28) | internal Label[] GetLabels()

FILE: src/Venflow/Dynamic/IgnoresAccessChecksToAttribute.cs
  class IgnoresAccessChecksToAttribute (line 8) | [EditorBrowsable(EditorBrowsableState.Never)]
    method IgnoresAccessChecksToAttribute (line 13) | public IgnoresAccessChecksToAttribute(string assemblyName)

FILE: src/Venflow/Dynamic/Inserter/EntityRelationHolder.cs
  class EntityRelationHolder (line 5) | internal class EntityRelationHolder
    method EntityRelationHolder (line 12) | internal EntityRelationHolder(Entity entity)

FILE: src/Venflow/Dynamic/Inserter/InsertionFactory.cs
  class InsertionFactory (line 7) | internal class InsertionFactory<TEntity> where TEntity : class, new()
    method InsertionFactory (line 14) | internal InsertionFactory(Entity<TEntity> entity)
    method GetOrCreateInserter (line 22) | internal Delegate GetOrCreateInserter<TInsert>(RelationBuilderValues r...

FILE: src/Venflow/Dynamic/Inserter/InsertionFactoryCompiler.cs
  class InsertionFactoryCompiler (line 14) | internal class InsertionFactoryCompiler
    method InsertionFactoryCompiler (line 41) | internal InsertionFactoryCompiler(Entity rootEntity)
    method CreateInserter (line 46) | internal Delegate CreateInserter<TInsert>(EntityRelationHolder[] entit...
    method CreateBatchNoRelationInserter (line 202) | private void CreateBatchNoRelationInserter()
    method CreateBatchRelationInserter (line 662) | private void CreateBatchRelationInserter(EntityRelationHolder[] entities)
    method CreateSingleNoRelationInserter (line 1341) | private void CreateSingleNoRelationInserter()
    method CreateSingleRelationInserter (line 1515) | private void CreateSingleRelationInserter(EntityRelationHolder[] entit...
    method CreateSingleNoRelationNoDbKeysInserter (line 2383) | private void CreateSingleNoRelationNoDbKeysInserter(ILGenerator iLGene...
    method WritePropertyAssigner (line 2466) | private void WritePropertyAssigner(ILGenerator ilGenerator, EntityColu...
    method WriteNpgsqlParameterFromColumn (line 2481) | private void WriteNpgsqlParameterFromColumn(ILGenerator ilGenerator, o...
    class EntitySeprator (line 2673) | private class EntitySeprator
      method EntitySeprator (line 2690) | internal EntitySeprator(ILGenerator ilGenerator, TypeBuilder typeBui...
      method WriteEntitySeperater (line 2713) | internal Dictionary<long, FieldBuilder> WriteEntitySeperater(FieldBu...
      method WriteFlatEntitySeperater (line 2760) | internal Dictionary<long, FieldBuilder> WriteFlatEntitySeperater(Fie...
      method WriteEntitySetup (line 2778) | private void WriteEntitySetup()
      method WriteEntitySeperaterBase (line 2808) | private void WriteEntitySeperaterBase(Entity entity, LocalBuilder le...
      method WritePropertyAssigner (line 2943) | private void WritePropertyAssigner(ILGenerator ilGenerator, EntityCo...

FILE: src/Venflow/Dynamic/Inserter/InsertionSourceCompiler.cs
  class InsertionSourceCompiler (line 8) | internal class InsertionSourceCompiler
    method InsertionSourceCompiler (line 17) | internal InsertionSourceCompiler()
    method GetEntities (line 27) | internal EntityRelationHolder[] GetEntities()
    method CompileFromRoot (line 41) | internal void CompileFromRoot(Entity entity)
    method CompileFromRelations (line 56) | internal void CompileFromRelations(Entity entity, IRelationPath rootPath)
    method BaseCompileFromRelations (line 98) | private void BaseCompileFromRelations(IRelationPath relationPath, Enti...
    method CollectAllReachableEntities (line 138) | private void CollectAllReachableEntities(Entity entity, EntityRelation...
    method BaseCompile (line 188) | private void BaseCompile()

FILE: src/Venflow/Dynamic/Instantiater/DatabaseTableFactory.cs
  class DatabaseTableFactory (line 6) | internal static class DatabaseTableFactory
    method CreateInstantiater (line 8) | internal static Action<Database, IList<Entity>> CreateInstantiater(Typ...

FILE: src/Venflow/Dynamic/Materializer/MaterializerFactory.cs
  class MaterializerFactory (line 9) | internal class MaterializerFactory<TEntity> where TEntity : class, new()
    method MaterializerFactory (line 21) | internal MaterializerFactory(Entity<TEntity> entity)
    method GetOrCreateMaterializer (line 32) | internal Func<NpgsqlDataReader, CancellationToken, Task<TReturn>> GetO...
    method GetOrCreateDefaultMaterializer (line 81) | private Func<NpgsqlDataReader, CancellationToken, Task<TReturn>> GetOr...
    class ExpirationEntry (line 188) | private class ExpirationEntry
      method ExpirationEntry (line 194) | internal ExpirationEntry(long timeStamp, SqlQueryCacheKey cacheKey)

FILE: src/Venflow/Dynamic/Materializer/MaterializerFactoryCompiler.cs
  class MaterializerFactoryCompiler (line 12) | internal class MaterializerFactoryCompiler
    method MaterializerFactoryCompiler (line 37) | internal MaterializerFactoryCompiler(Entity rootEntity)
    method CreateMaterializer (line 59) | internal Func<NpgsqlDataReader, CancellationToken, Task<TReturn>> Crea...
    method CreateSingleNoRelationMaterializer (line 162) | private void CreateSingleNoRelationMaterializer(List<(EntityColumn, in...
    method CreateSingleRelationMaterializer (line 263) | private void CreateSingleRelationMaterializer(List<(QueryEntityHolder,...
    method CreateBatchNoRelationMaterializer (line 926) | private void CreateBatchNoRelationMaterializer(List<(EntityColumn, int...
    method CreateBatchRelationMaterializer (line 1048) | private void CreateBatchRelationMaterializer(List<(QueryEntityHolder, ...
    method CreateEntity (line 1568) | private void CreateEntity(Entity entity, List<(EntityColumn, int)> dbC...
    method WriteInEqualityComparer (line 1633) | private void WriteInEqualityComparer(Type type, Label branchTo)
    method WriteColumnMaterializer (line 1648) | private void WriteColumnMaterializer(ILGenerator ilGenerator, EntityCo...
    method WritePropertyAssigner (line 1821) | private void WritePropertyAssigner(ILGenerator ilGenerator, EntityColu...
    method WritePropertyAssigner (line 1829) | private void WritePropertyAssigner(ILGenerator ilGenerator, PropertyIn...

FILE: src/Venflow/Dynamic/Materializer/MaterializerSourceCompiler.cs
  class MaterializerSourceCompiler (line 7) | internal class MaterializerSourceCompiler
    method MaterializerSourceCompiler (line 13) | internal MaterializerSourceCompiler(RelationBuilderValues? relationBui...
    method GenerateSortedEntities (line 20) | internal QueryEntityHolder[] GenerateSortedEntities()
    method Compile (line 34) | internal void Compile(Entity rootEntity)
    method BaseCompile (line 49) | private void BaseCompile(RelationPath<JoinBehaviour> relationPath, Que...

FILE: src/Venflow/Dynamic/Materializer/QueryEntityHolder.cs
  class QueryEntityHolder (line 5) | internal class QueryEntityHolder
    method QueryEntityHolder (line 17) | internal QueryEntityHolder(Entity entity, int id)

FILE: src/Venflow/Dynamic/Materializer/SqlExpression.cs
  class SqlExpression (line 5) | internal class SqlExpression
    method SqlExpression (line 12) | internal SqlExpression(string sql, Delegate arguments, Type parameterT...

FILE: src/Venflow/Dynamic/NullableAttribute.cs
  class NullableAttribute (line 8) | [EditorBrowsable(EditorBrowsableState.Never)]
    method NullableAttribute (line 15) | public NullableAttribute(byte flag)
    method NullableAttribute (line 22) | public NullableAttribute(byte[] flags)

FILE: src/Venflow/Dynamic/NullableContextAttribute.cs
  class NullableContextAttribute (line 8) | [EditorBrowsable(EditorBrowsableState.Never)]
    method NullableContextAttribute (line 15) | public NullableContextAttribute(byte flag)

FILE: src/Venflow/Dynamic/Proxies/ChangeTracker.cs
  class ChangeTracker (line 3) | internal class ChangeTracker<TEntity> where TEntity : class, new()
    method ChangeTracker (line 12) | internal ChangeTracker(int columnLength, bool trackChanges)
    method MakeDirty (line 19) | internal void MakeDirty(byte propertyIndex, byte columnIndex)
    method GetColumns (line 37) | internal byte[] GetColumns()

FILE: src/Venflow/Dynamic/Proxies/ChangeTrackerFactory.cs
  class ChangeTrackerFactory (line 7) | internal class ChangeTrackerFactory<TEntity> where TEntity : class, new()
    method ChangeTrackerFactory (line 14) | internal ChangeTrackerFactory(Type entityType)
    method GenerateEntityProxy (line 20) | internal void GenerateEntityProxy(Dictionary<int, EntityColumn<TEntity...
    method GetProxyFactory (line 89) | internal Func<ChangeTracker<TEntity>, TEntity> GetProxyFactory()
    method GetProxyApplyingFactory (line 98) | internal Func<ChangeTracker<TEntity>, TEntity, TEntity> GetProxyApplyi...

FILE: src/Venflow/Dynamic/Proxies/IEntityProxy.cs
  type IEntityProxy (line 3) | internal interface IEntityProxy<TEntity> where TEntity : class, new()

FILE: src/Venflow/Dynamic/Retriever/ValueRetrieverFactory.cs
  class ValueRetrieverFactory (line 8) | internal class ValueRetrieverFactory<TEntity> where TEntity : class, new()
    method ValueRetrieverFactory (line 12) | internal ValueRetrieverFactory(Type entityType)
    method GenerateRetriever (line 17) | internal Func<TEntity, string, NpgsqlParameter> GenerateRetriever(Colu...
    method WriteDefaultRetriever (line 51) | private void WriteDefaultRetriever(ILGenerator il, ColumnDefinition co...
    method WriteNullableRetriever (line 96) | private void WriteNullableRetriever(ILGenerator il, ColumnDefinition c...

FILE: src/Venflow/Dynamic/SpanExtensions.cs
  class SpanExtensions (line 8) | internal static class SpanExtensions
    class SpanMethodCache (line 12) | private static class SpanMethodCache<TType>
      method SpanMethodCache (line 16) | static SpanMethodCache()
      method AsSpan (line 31) | internal static Span<TType> AsSpan(List<TType> list)
    method SpanExtensions (line 41) | static SpanExtensions()
    method AsSpan (line 46) | internal static Span<T> AsSpan<T>(this List<T> list)
    method AsSpan (line 59) | internal static Span<NpgsqlDbColumn> AsSpan(this ReadOnlyCollection<Np...
    method AsList (line 64) | internal static List<NpgsqlDbColumn> AsList(this ReadOnlyCollection<Np...
    method GetUnderlyingReadOnlyCollectionListGetter (line 69) | private static Func<ReadOnlyCollection<NpgsqlDbColumn>, List<NpgsqlDbC...

FILE: src/Venflow/Dynamic/TypeFactory.cs
  class TypeFactory (line 6) | internal static class TypeFactory
    method TypeFactory (line 20) | static TypeFactory()
    method AddEntityAssembly (line 36) | internal static void AddEntityAssembly(string assemblyName)
    method GetNewProxyBuilder (line 49) | internal static TypeBuilder GetNewProxyBuilder(string typeName, TypeAt...
    method GetNewMaterializerBuilder (line 54) | internal static TypeBuilder GetNewMaterializerBuilder(string typeName,...
    method GetNewInserterBuilder (line 59) | internal static TypeBuilder GetNewInserterBuilder(string typeName, Typ...
    method GetDynamicMethod (line 64) | internal static DynamicMethod GetDynamicMethod(string methodName, Type...
    method GetTypeName (line 72) | private static string GetTypeName(NamespaceType namespaceType, string ...
    type NamespaceType (line 77) | private enum NamespaceType

FILE: src/Venflow/Enums/ColumnListStringOptions.cs
  type ColumnListStringOptions (line 3) | [Flags]

FILE: src/Venflow/Enums/ColumnOptions.cs
  type ColumnOptions (line 3) | [Flags]

FILE: src/Venflow/Enums/CommandType.cs
  type CommandType (line 6) | [Flags]

FILE: src/Venflow/Enums/ForeignKeyLoaction.cs
  type ForeignKeyLocation (line 3) | internal enum ForeignKeyLocation : byte

FILE: src/Venflow/Enums/ForeignTruncateOptions.cs
  type ForeignTruncateOptions (line 6) | public enum ForeignTruncateOptions : byte

FILE: src/Venflow/Enums/IdentityTruncateOptions.cs
  type IdentityTruncateOptions (line 6) | public enum IdentityTruncateOptions : byte

FILE: src/Venflow/Enums/InsertCacheKeyOptions.cs
  type InsertCacheKeyOptions (line 3) | [Flags]

FILE: src/Venflow/Enums/JoinBehaviour.cs
  type JoinBehaviour (line 6) | public enum JoinBehaviour : byte

FILE: src/Venflow/Enums/LoggingBehaviour.cs
  type LoggingBehavior (line 6) | public enum LoggingBehavior : byte

FILE: src/Venflow/Enums/QueryGenerationOptions.cs
  type QueryGenerationOptions (line 3) | [Flags]

FILE: src/Venflow/Enums/RelationPartType.cs
  type RelationPartType (line 3) | internal enum RelationPartType : byte

FILE: src/Venflow/Enums/RelationType.cs
  type RelationType (line 3) | internal enum RelationType : byte

FILE: src/Venflow/Enums/SqlExpressionOptions.cs
  type SqlExpressionOptions (line 3) | internal enum SqlExpressionOptions : byte

FILE: src/Venflow/FormattableSqlStringBuilder.cs
  class FormattableSqlStringBuilder (line 9) | public class FormattableSqlStringBuilder
    method FormattableSqlStringBuilder (line 19) | public FormattableSqlStringBuilder()
    method AppendLine (line 32) | public void AppendLine(string sql)
    method Append (line 53) | public void Append(string sql)
    method AppendInterpolatedLine (line 68) | public void AppendInterpolatedLine(FormattableString sql)
    method AppendInterpolated (line 82) | public void AppendInterpolated(FormattableString sql)
    method AppendParameter (line 129) | public void AppendParameter<T>(T value)
    method HandleParameter (line 137) | #if NET5_0_OR_GREATER
    method ToString (line 187) | public override string ToString()

FILE: src/Venflow/IParameterTypeHandler.cs
  type IParameterTypeHandler (line 8) | public interface IParameterTypeHandler
    method Handle (line 16) | NpgsqlParameter Handle(string name, object val);

FILE: src/Venflow/InvalidEntityRelationException.cs
  class InvalidEntityRelationException (line 6) | [Serializable]
    method InvalidEntityRelationException (line 12) | public InvalidEntityRelationException() { }
    method InvalidEntityRelationException (line 18) | public InvalidEntityRelationException(string message) : base(message) { }
    method InvalidEntityRelationException (line 25) | public InvalidEntityRelationException(string message, Exception inner)...
    method InvalidEntityRelationException (line 34) | protected InvalidEntityRelationException(

FILE: src/Venflow/Modeling/DatabaseConfigurationFactory.cs
  class DatabaseConfigurationFactory (line 9) | internal class DatabaseConfigurationFactory
    method DatabaseConfigurationFactory (line 14) | internal DatabaseConfigurationFactory()
    method BuildConfiguration (line 20) | internal DatabaseConfiguration BuildConfiguration(Type databaseType, D...
    method CreateEntityConfigurations (line 59) | private void CreateEntityConfigurations(Type databaseType, List<Proper...
    method GetDatabaseTables (line 135) | private List<PropertyInfo> GetDatabaseTables(Type databaseType)
    method AddToConfigurations (line 160) | private void AddToConfigurations(EntityFactory entityFactory)

FILE: src/Venflow/Modeling/Definitions/Builder/EntityBuilder.cs
  class EntityBuilder (line 12) | internal class EntityBuilder<TEntity> : EntityBuilder, IEntityBuilder<TE...
    method EntityBuilder (line 47) | internal EntityBuilder(DatabaseConfigurationOptionsBuilder configurati...
    method MapToTable (line 74) | IEntityBuilder<TEntity> IEntityBuilder<TEntity>.MapToTable(string tabl...
    method Column (line 86) | IPropertyBuilder IEntityBuilder<TEntity>.Column<TTarget>(Expression<Fu...
    method MapColumn (line 93) | IEntityBuilder<TEntity> IEntityBuilder<TEntity>.MapColumn<TTarget>(Exp...
    method Ignore (line 107) | IEntityBuilder<TEntity> IEntityBuilder<TEntity>.Ignore<TTarget>(Expres...
    method MapId (line 116) | IEntityBuilder<TEntity> IEntityBuilder<TEntity>.MapId<TTarget>(Express...
    method SetNpgsqlNameTranslator (line 136) | IEntityBuilder<TEntity> IEntityBuilder<TEntity>.SetNpgsqlNameTranslato...
    method SetNpgsqlNameTranslator (line 143) | IEntityBuilder<TEntity> IEntityBuilder<TEntity>.SetNpgsqlNameTranslato...
    method MapPostgresEnum (line 150) | [Obsolete("This method will be removed in the next major version. Plea...
    method MapPostgresEnum (line 160) | [Obsolete("This method will be removed in the next major version. Plea...
    method MapPostgresEnum (line 170) | private void MapPostgresEnum<TTarget>(PropertyInfo property, string? n...
    method HasMany (line 213) | INotRequiredSingleRightRelationBuilder<TEntity, TRelation> ILeftRelati...
    method HasMany (line 228) | IRequiredSingleRightRelationBuilder<TEntity, TRelation> ILeftRelationB...
    method HasOne (line 233) | INotRequiredMultiRightRelationBuilder<TEntity, TRelation> ILeftRelatio...
    method HasOne (line 248) | IRequiredMultiRightRelationBuilder<TEntity, TRelation> ILeftRelationBu...
    method IgnoreProperty (line 253) | internal override void IgnoreProperty(string propertyName)
    method Build (line 256) | internal EntityColumnCollection<TEntity> Build()
    method DiscorverColumns (line 445) | private void DiscorverColumns()
    method EntityBuilder (line 497) | protected EntityBuilder()
    method IgnoreProperty (line 502) | internal abstract void IgnoreProperty(string propertyName);
  class EntityBuilder (line 490) | internal abstract class EntityBuilder
    method EntityBuilder (line 47) | internal EntityBuilder(DatabaseConfigurationOptionsBuilder configurati...
    method MapToTable (line 74) | IEntityBuilder<TEntity> IEntityBuilder<TEntity>.MapToTable(string tabl...
    method Column (line 86) | IPropertyBuilder IEntityBuilder<TEntity>.Column<TTarget>(Expression<Fu...
    method MapColumn (line 93) | IEntityBuilder<TEntity> IEntityBuilder<TEntity>.MapColumn<TTarget>(Exp...
    method Ignore (line 107) | IEntityBuilder<TEntity> IEntityBuilder<TEntity>.Ignore<TTarget>(Expres...
    method MapId (line 116) | IEntityBuilder<TEntity> IEntityBuilder<TEntity>.MapId<TTarget>(Express...
    method SetNpgsqlNameTranslator (line 136) | IEntityBuilder<TEntity> IEntityBuilder<TEntity>.SetNpgsqlNameTranslato...
    method SetNpgsqlNameTranslator (line 143) | IEntityBuilder<TEntity> IEntityBuilder<TEntity>.SetNpgsqlNameTranslato...
    method MapPostgresEnum (line 150) | [Obsolete("This method will be removed in the next major version. Plea...
    method MapPostgresEnum (line 160) | [Obsolete("This method will be removed in the next major version. Plea...
    method MapPostgresEnum (line 170) | private void MapPostgresEnum<TTarget>(PropertyInfo property, string? n...
    method HasMany (line 213) | INotRequiredSingleRightRelationBuilder<TEntity, TRelation> ILeftRelati...
    method HasMany (line 228) | IRequiredSingleRightRelationBuilder<TEntity, TRelation> ILeftRelationB...
    method HasOne (line 233) | INotRequiredMultiRightRelationBuilder<TEntity, TRelation> ILeftRelatio...
    method HasOne (line 248) | IRequiredMultiRightRelationBuilder<TEntity, TRelation> ILeftRelationBu...
    method IgnoreProperty (line 253) | internal override void IgnoreProperty(string propertyName)
    method Build (line 256) | internal EntityColumnCollection<TEntity> Build()
    method DiscorverColumns (line 445) | private void DiscorverColumns()
    method EntityBuilder (line 497) | protected EntityBuilder()
    method IgnoreProperty (line 502) | internal abstract void IgnoreProperty(string propertyName);
  type IEntityBuilder (line 509) | public interface IEntityBuilder<TEntity> : ILeftRelationBuilder<TEntity>...
    method MapToTable (line 516) | IEntityBuilder<TEntity> MapToTable(string tableName);
    method Column (line 523) | IPropertyBuilder Column<TTarget>(Expression<Func<TEntity, TTarget>> pr...
    method MapColumn (line 532) | IEntityBuilder<TEntity> MapColumn<TTarget>(Expression<Func<TEntity, TT...
    method Ignore (line 540) | IEntityBuilder<TEntity> Ignore<TTarget>(Expression<Func<TEntity, TTarg...
    method MapId (line 549) | IEntityBuilder<TEntity> MapId<TTarget>(Expression<Func<TEntity, TTarge...
    method SetNpgsqlNameTranslator (line 556) | IEntityBuilder<TEntity> SetNpgsqlNameTranslator(INpgsqlNameTranslator ...
    method SetNpgsqlNameTranslator (line 563) | IEntityBuilder<TEntity> SetNpgsqlNameTranslator<T>() where T : INpgsql...
    method MapPostgresEnum (line 573) | [Obsolete("This method will be removed in the next major version. Plea...
    method MapPostgresEnum (line 585) | [Obsolete("This method will be removed in the next major version. Plea...

FILE: src/Venflow/Modeling/Definitions/Builder/IForeignKeyRelationBuilder.cs
  type IForeignKeyRelationBuilder (line 8) | public interface IForeignKeyRelationBuilder<TEntity, TRelation> where TE...
    method UsingForeignKey (line 15) | void UsingForeignKey<TKey>(Expression<Func<TEntity, TKey>> navigationP...
    method UsingForeignKey (line 22) | void UsingForeignKey<TKey>(Expression<Func<TRelation, TKey>> navigatio...

FILE: src/Venflow/Modeling/Definitions/Builder/ILeftRelationBuilder.cs
  type ILeftRelationBuilder (line 9) | public interface ILeftRelationBuilder<TEntity> where TEntity : class, new()
    method HasOne (line 25) | INotRequiredMultiRightRelationBuilder<TEntity, TRelation> HasOne<TRela...
    method HasOne (line 40) | IRequiredMultiRightRelationBuilder<TEntity, TRelation> HasOne<TRelatio...
    method HasMany (line 55) | INotRequiredSingleRightRelationBuilder<TEntity, TRelation> HasMany<TRe...
    method HasMany (line 70) | IRequiredSingleRightRelationBuilder<TEntity, TRelation> HasMany<TRelat...

FILE: src/Venflow/Modeling/Definitions/Builder/IMultiRightRelationBuilder.cs
  type IMultiRightRelationBuilder (line 10) | public interface IMultiRightRelationBuilder<TEntity, TRelation> where TE...
    method WithMany (line 22) | IForeignKeyRelationBuilder<TEntity, TRelation> WithMany(Expression<Fun...

FILE: src/Venflow/Modeling/Definitions/Builder/INotRequiredMultiRightRelationBuilder.cs
  type INotRequiredMultiRightRelationBuilder (line 6) | public interface INotRequiredMultiRightRelationBuilder<TEntity, TRelatio...
    method WithMany (line 17) | IForeignKeyRelationBuilder<TEntity, TRelation> WithMany();

FILE: src/Venflow/Modeling/Definitions/Builder/INotRequiredSingleRightRelationBuilder.cs
  type INotRequiredSingleRightRelationBuilder (line 6) | public interface INotRequiredSingleRightRelationBuilder<TEntity, TRelati...
    method WithOne (line 17) | IForeignKeyRelationBuilder<TEntity, TRelation> WithOne();

FILE: src/Venflow/Modeling/Definitions/Builder/IRequiredMultiRightRelationBuilder.cs
  type IRequiredMultiRightRelationBuilder (line 6) | public interface IRequiredMultiRightRelationBuilder<TEntity, TRelation> ...

FILE: src/Venflow/Modeling/Definitions/Builder/IRequiredSingleRightRelationBuilder.cs
  type IRequiredSingleRightRelationBuilder (line 8) | public interface IRequiredSingleRightRelationBuilder<TEntity, TRelation>...
    method WithOne (line 20) | IForeignKeyRelationBuilder<TEntity, TRelation> WithOne(Expression<Func...

FILE: src/Venflow/Modeling/Definitions/Builder/PropertyBuilder.cs
  class PropertyBuilder (line 7) | internal class PropertyBuilder : IPropertyBuilder
    method PropertyBuilder (line 11) | internal PropertyBuilder(ColumnDefinition definition)
    method HasDefault (line 16) | IPropertyBuilder IPropertyBuilder.HasDefault()
    method HasId (line 23) | IPropertyBuilder IPropertyBuilder.HasId()
    method WithName (line 30) | IPropertyBuilder IPropertyBuilder.WithName(string name)
    method WithType (line 37) | IPropertyBuilder IPropertyBuilder.WithType(NpgsqlDbType dbType)
  type IPropertyBuilder (line 48) | public interface IPropertyBuilder
    method HasId (line 54) | IPropertyBuilder HasId();
    method WithName (line 61) | IPropertyBuilder WithName(string name);
    method WithType (line 68) | IPropertyBuilder WithType(NpgsqlDbType dbType);
    method HasDefault (line 74) | IPropertyBuilder HasDefault();

FILE: src/Venflow/Modeling/Definitions/Builder/RightRelationBuilder.cs
  class RightRelationBuilder (line 6) | internal class RightRelationBuilder<TEntity, TRelation> : INotRequiredMu...
    method RightRelationBuilder (line 15) | internal RightRelationBuilder(RelationPartType rightRelationType, Prop...
    method WithMany (line 22) | IForeignKeyRelationBuilder<TEntity, TRelation> IMultiRightRelationBuil...
    method WithMany (line 37) | IForeignKeyRelationBuilder<TEntity, TRelation> INotRequiredMultiRightR...
    method WithOne (line 44) | IForeignKeyRelationBuilder<TEntity, TRelation> IRequiredSingleRightRel...
    method WithOne (line 59) | IForeignKeyRelationBuilder<TEntity, TRelation> INotRequiredSingleRight...
    method UsingForeignKey (line 66) | void IForeignKeyRelationBuilder<TEntity, TRelation>.UsingForeignKey<TK...
    method UsingForeignKey (line 71) | void IForeignKeyRelationBuilder<TEntity, TRelation>.UsingForeignKey<TK...
    method ApplyRelation (line 76) | private void ApplyRelation(PropertyInfo foreignKey, ForeignKeyLocation...
    method GetRelationFromParts (line 81) | private RelationType GetRelationFromParts(RelationPartType leftPart, R...

FILE: src/Venflow/Modeling/Definitions/ColumnDefinition.cs
  class ColumnDefinition (line 6) | internal class ColumnDefinition
    method ColumnDefinition (line 13) | internal ColumnDefinition(PropertyInfo property)

FILE: src/Venflow/Modeling/Definitions/EntityConfiguration.cs
  class EntityConfiguration (line 12) | public abstract class EntityConfiguration<TEntity> : IEntityConfiguration
    method Configure (line 19) | protected abstract void Configure(IEntityBuilder<TEntity> entityBuilder);
    method BuildConfiguration (line 21) | EntityFactory IEntityConfiguration.BuildConfiguration(EntityBuilder en...
  type IEntityConfiguration (line 30) | internal interface IEntityConfiguration
    method BuildConfiguration (line 32) | EntityFactory BuildConfiguration(EntityBuilder entityBuilder);

FILE: src/Venflow/Modeling/Definitions/EntityFactory.cs
  class EntityFactory (line 6) | internal class EntityFactory<TEntity> : EntityFactory where TEntity : cl...
    method EntityFactory (line 14) | internal EntityFactory(EntityBuilder<TEntity> entityBuilder)
    method BuildEntity (line 19) | internal override Entity BuildEntity()
    method ConfigureForeignRelations (line 40) | internal override void ConfigureForeignRelations(Dictionary<string, En...
    method ApplyForeignRelations (line 108) | internal override void ApplyForeignRelations(Dictionary<string, Entity...
    method GetColumnListString (line 178) | private string GetColumnListString(EntityColumnCollection<TEntity> col...
    method ReverseKeyLocation (line 200) | private ForeignKeyLocation ReverseKeyLocation(ForeignKeyLocation forei...
    method ReverseRelationType (line 208) | private RelationType ReverseRelationType(RelationType relationType) =>
    method EntityFactory (line 222) | protected EntityFactory()
    method BuildEntity (line 226) | internal abstract Entity BuildEntity();
    method ConfigureForeignRelations (line 228) | internal abstract void ConfigureForeignRelations(Dictionary<string, En...
    method ApplyForeignRelations (line 230) | internal abstract void ApplyForeignRelations(Dictionary<string, Entity...
  class EntityFactory (line 218) | internal abstract class EntityFactory
    method EntityFactory (line 14) | internal EntityFactory(EntityBuilder<TEntity> entityBuilder)
    method BuildEntity (line 19) | internal override Entity BuildEntity()
    method ConfigureForeignRelations (line 40) | internal override void ConfigureForeignRelations(Dictionary<string, En...
    method ApplyForeignRelations (line 108) | internal override void ApplyForeignRelations(Dictionary<string, Entity...
    method GetColumnListString (line 178) | private string GetColumnListString(EntityColumnCollection<TEntity> col...
    method ReverseKeyLocation (line 200) | private ForeignKeyLocation ReverseKeyLocation(ForeignKeyLocation forei...
    method ReverseRelationType (line 208) | private RelationType ReverseRelationType(RelationType relationType) =>
    method EntityFactory (line 222) | protected EntityFactory()
    method BuildEntity (line 226) | internal abstract Entity BuildEntity();
    method ConfigureForeignRelations (line 228) | internal abstract void ConfigureForeignRelations(Dictionary<string, En...
    method ApplyForeignRelations (line 230) | internal abstract void ApplyForeignRelations(Dictionary<string, Entity...

FILE: src/Venflow/Modeling/Definitions/EntityRelationDefinition.cs
  class EntityRelationDefinition (line 6) | internal class EntityRelationDefinition
    method EntityRelationDefinition (line 27) | internal EntityRelationDefinition(uint relationId, EntityBuilder leftE...

FILE: src/Venflow/Modeling/Definitions/ExpressionExtensions.cs
  class ExpressionExtensions (line 5) | internal static class ExpressionExtensions
    method ValidatePropertySelector (line 7) | internal static PropertyInfo ValidatePropertySelector<TSource, TTarget...

FILE: src/Venflow/Modeling/Entity.cs
  class Entity (line 8) | internal class Entity<TEntity> : Entity where TEntity : class, new()
    method Entity (line 21) | internal Entity(Type entityType, Type? proxyEntityType, string tableNa...
    method GetProxiedEntity (line 32) | internal TEntity GetProxiedEntity(bool trackChanges = false)
    method ApplyChangeTracking (line 42) | internal TEntity ApplyChangeTracking(TEntity entity)
    method GetPrimaryColumn (line 52) | internal override EntityColumn? GetPrimaryColumn()
    method GetColumn (line 57) | internal override EntityColumn GetColumn(int index)
    method GetColumn (line 62) | internal override EntityColumn GetColumn(string columnName)
    method TryGetColumn (line 67) | internal override bool TryGetColumn(string columnName, out EntityColum...
    method GetColumnCount (line 83) | internal override int GetColumnCount()
    method GetChangeTrackingCount (line 86) | internal override int GetChangeTrackingCount()
    method GetReadOnlyCount (line 89) | internal override int GetReadOnlyCount()
    method GetRegularColumnOffset (line 92) | internal override int GetRegularColumnOffset()
    method GetLastRegularColumnsIndex (line 95) | internal override int GetLastRegularColumnsIndex()
    method Entity (line 117) | protected Entity(Type entityType, Type? proxyEntityType, string tableN...
    method GetPrimaryColumn (line 129) | internal abstract EntityColumn? GetPrimaryColumn();
    method GetColumnCount (line 130) | internal abstract int GetColumnCount();
    method GetChangeTrackingCount (line 131) | internal abstract int GetChangeTrackingCount();
    method GetReadOnlyCount (line 132) | internal abstract int GetReadOnlyCount();
    method GetRegularColumnOffset (line 133) | internal abstract int GetRegularColumnOffset();
    method GetLastRegularColumnsIndex (line 134) | internal abstract int GetLastRegularColumnsIndex();
    method GetColumn (line 135) | internal abstract EntityColumn GetColumn(int index);
    method GetColumn (line 136) | internal abstract EntityColumn GetColumn(string columnName);
    method TryGetColumn (line 137) | internal abstract bool TryGetColumn(string columnName, out EntityColum...
  class Entity (line 99) | internal abstract class Entity
    method Entity (line 21) | internal Entity(Type entityType, Type? proxyEntityType, string tableNa...
    method GetProxiedEntity (line 32) | internal TEntity GetProxiedEntity(bool trackChanges = false)
    method ApplyChangeTracking (line 42) | internal TEntity ApplyChangeTracking(TEntity entity)
    method GetPrimaryColumn (line 52) | internal override EntityColumn? GetPrimaryColumn()
    method GetColumn (line 57) | internal override EntityColumn GetColumn(int index)
    method GetColumn (line 62) | internal override EntityColumn GetColumn(string columnName)
    method TryGetColumn (line 67) | internal override bool TryGetColumn(string columnName, out EntityColum...
    method GetColumnCount (line 83) | internal override int GetColumnCount()
    method GetChangeTrackingCount (line 86) | internal override int GetChangeTrackingCount()
    method GetReadOnlyCount (line 89) | internal override int GetReadOnlyCount()
    method GetRegularColumnOffset (line 92) | internal override int GetRegularColumnOffset()
    method GetLastRegularColumnsIndex (line 95) | internal override int GetLastRegularColumnsIndex()
    method Entity (line 117) | protected Entity(Type entityType, Type? proxyEntityType, string tableN...
    method GetPrimaryColumn (line 129) | internal abstract EntityColumn? GetPrimaryColumn();
    method GetColumnCount (line 130) | internal abstract int GetColumnCount();
    method GetChangeTrackingCount (line 131) | internal abstract int GetChangeTrackingCount();
    method GetReadOnlyCount (line 132) | internal abstract int GetReadOnlyCount();
    method GetRegularColumnOffset (line 133) | internal abstract int GetRegularColumnOffset();
    method GetLastRegularColumnsIndex (line 134) | internal abstract int GetLastRegularColumnsIndex();
    method GetColumn (line 135) | internal abstract EntityColumn GetColumn(int index);
    method GetColumn (line 136) | internal abstract EntityColumn GetColumn(string columnName);
    method TryGetColumn (line 137) | internal abstract bool TryGetColumn(string columnName, out EntityColum...

FILE: src/Venflow/Modeling/EntityColumn.cs
  class EntityColumn (line 7) | internal class EntityColumn<TEntity> : EntityColumn where TEntity : clas...
    method EntityColumn (line 11) | internal EntityColumn(
    method EntityColumn (line 34) | protected EntityColumn(
  class EntityColumn (line 25) | internal abstract class EntityColumn
    method EntityColumn (line 11) | internal EntityColumn(
    method EntityColumn (line 34) | protected EntityColumn(

FILE: src/Venflow/Modeling/EntityColumnCollection.cs
  class EntityColumnCollection (line 3) | internal class EntityColumnCollection<TEntity> : DualKeyCollection<strin...
    method EntityColumnCollection (line 10) | internal EntityColumnCollection(EntityColumn<TEntity>[] firstCollction...

FILE: src/Venflow/Modeling/EntityRelation.cs
  class EntityRelation (line 5) | internal class EntityRelation
    method EntityRelation (line 25) | internal EntityRelation(uint relationId, Entity leftEntity, PropertyIn...

FILE: src/Venflow/NpgsqlCommandExtensions.cs
  class NpgsqlCommandExtensions (line 8) | public static class NpgsqlCommandExtensions
    method AddParamter (line 18) | public static NpgsqlParameter<TType> AddParamter<TType>(this NpgsqlCom...
    method SetInterpolatedCommandText (line 32) | public static void SetInterpolatedCommandText(this NpgsqlCommand comma...
    method GetUnParameterizedCommandText (line 123) | public static string GetUnParameterizedCommandText(this NpgsqlCommand ...

FILE: src/Venflow/NpgsqlDataReaderExtensions.cs
  class NpgsqlDataReaderExtensions (line 5) | internal static class NpgsqlDataReaderExtensions
    method GetValueOrDefault (line 7) | internal static T GetValueOrDefault<T>(this NpgsqlDataReader reader, i...

FILE: src/Venflow/NpgsqlParameterExtensions.cs
  class NpgsqlParameterExtensions (line 6) | internal static class NpgsqlParameterExtensions
    method CreateParameter (line 8) | internal static NpgsqlParameter<T> CreateParameter<T>(string parameter...

FILE: src/Venflow/NpgsqlQuotedNameTranslator.cs
  class NpgsqlQuotedNameTranslator (line 9) | public class NpgsqlQuotedNameTranslator : NpgsqlNullNameTranslator, INpg...
    method TranslateTypeName (line 14) | public new string TranslateTypeName(string clrName) => $"\"{base.Trans...
    method TranslateMemberName (line 19) | public new string TranslateMemberName(string clrName) => $"\"{base.Tra...

FILE: src/Venflow/ParameterTypeHandler.cs
  class ParameterTypeHandler (line 9) | public static class ParameterTypeHandler
    method ParameterTypeHandler (line 17) | static ParameterTypeHandler()
    method AddTypeHandler (line 31) | public static void AddTypeHandler(Type type, IParameterTypeHandler typ...
    method HandleParameter (line 34) | internal static NpgsqlParameter HandleParameter(string name, object? val)
    method HandleParameter (line 80) | internal static NpgsqlParameter HandleParameter<T>(string name, T? val)
    method HandleParameter (line 130) | internal static NpgsqlParameter HandleParameter(string name, object? v...
    method HandleParameter (line 144) | internal static NpgsqlParameter HandleParameter(string name, Type type...

FILE: src/Venflow/Properties/AssemblyInfo.cs
  class AssemblyInfo (line 17) | internal static class AssemblyInfo

FILE: src/Venflow/PropertyInfoExtensions.cs
  class PropertyInfoExtensions (line 5) | internal static class PropertyInfoExtensions
    method IsNullableReferenceType (line 7) | internal static bool IsNullableReferenceType(this PropertyInfo propert...
    method GetBackingField (line 36) | internal static FieldInfo? GetBackingField(this PropertyInfo property)

FILE: src/Venflow/Table.cs
  type ITable (line 8) | internal interface ITable { }
  class Table (line 14) | public sealed class Table<TEntity> : TableBase<TEntity>, ITable
    method Table (line 17) | internal Table(Database database, Entity<TEntity> configuration) : bas...
    method TruncateAsync (line 30) | public Task TruncateAsync(ForeignTruncateOptions foreignOptions, Cance...
    method TruncateAsync (line 41) | public async Task TruncateAsync(IdentityTruncateOptions truncateOption...
    method CountAsync (line 86) | public async Task<long> CountAsync(CancellationToken cancellationToken...
    method InsertAsync (line 106) | public Task<int> InsertAsync(TEntity entity, CancellationToken cancell...
    method InsertAsync (line 119) | public Task<int> InsertAsync(IInsertCommand<TEntity> insertCommand, TE...
    method InsertAsync (line 133) | public Task<int> InsertAsync(IList<TEntity> entities, CancellationToke...
    method InsertAsync (line 147) | public Task<int> InsertAsync(IInsertCommand<TEntity> insertCommand, Li...
    method DeleteAsync (line 165) | public ValueTask<int> DeleteAsync(TEntity entity, CancellationToken ca...
    method DeleteAsync (line 178) | public ValueTask<int> DeleteAsync(IDeleteCommand<TEntity> deleteComman...
    method DeleteAsync (line 195) | public ValueTask<int> DeleteAsync(IEnumerable<TEntity> entities, Cance...
    method DeleteAsync (line 207) | public ValueTask<int> DeleteAsync(IList<TEntity> entities, Cancellatio...
    method DeleteAsync (line 219) | public ValueTask<int> DeleteAsync(List<TEntity> entities, Cancellation...
    method DeleteAsync (line 231) | public ValueTask<int> DeleteAsync(TEntity[] entities, CancellationToke...
    method DeleteAsync (line 244) | public ValueTask<int> DeleteAsync(IDeleteCommand<TEntity> deleteComman...
    method UpdateAsync (line 265) | public ValueTask UpdateAsync(TEntity entity, CancellationToken cancell...
    method UpdateAsync (line 278) | public ValueTask UpdateAsync(IUpdateCommand<TEntity> updateCommand, TE...
    method UpdateAsync (line 295) | public ValueTask UpdateAsync(IEnumerable<TEntity> entities, Cancellati...
    method UpdateAsync (line 307) | public ValueTask UpdateAsync(List<TEntity> entities, CancellationToken...
    method UpdateAsync (line 319) | public ValueTask UpdateAsync(IList<TEntity> entities, CancellationToke...
    method UpdateAsync (line 331) | public ValueTask UpdateAsync(TEntity[] entities, CancellationToken can...
    method UpdateAsync (line 344) | public ValueTask UpdateAsync(IUpdateCommand<TEntity> updateCommand, IE...
    method Insert (line 363) | public IBaseInsertRelationBuilder<TEntity, TEntity> Insert()
    method Delete (line 371) | public IDeleteCommandBuilder<TEntity> Delete()
    method Delete (line 379) | public IDeleteCommandBuilder<TEntity> Delete(bool disposeCommand)
    method Update (line 386) | public IUpdateCommandBuilder<TEntity> Update()
    method Update (line 394) | public IUpdateCommandBuilder<TEntity> Update(bool disposeCommand)
    method GetProxiedEntity (line 407) | public TEntity GetProxiedEntity()
    method TrackChanges (line 416) | public void TrackChanges(ref TEntity entity)
    method TrackChanges (line 428) | public void TrackChanges(IList<TEntity> entities)

FILE: src/Venflow/TableBase.cs
  class TableBase (line 13) | public class TableBase<TEntity> where TEntity : class, new()
    method TableBase (line 18) | internal TableBase(Database database, Entity<TEntity> configuration)
    method QueryAsync (line 33) | public Task<TReturn?> QueryAsync<TReturn>(IQueryCommand<TEntity, TRetu...
    method QuerySingle (line 53) | public IBaseQueryRelationBuilder<TEntity, TEntity, TEntity> QuerySingl...
    method QuerySingle (line 62) | public IBaseQueryRelationBuilder<TEntity, TEntity, TEntity> QuerySingl...
    method QuerySingle (line 71) | public IBaseQueryRelationBuilder<TEntity, TEntity, TEntity> QuerySingl...
    method QuerySingle (line 80) | public IBaseQueryRelationBuilder<TEntity, TEntity, TEntity> QuerySingl...
    method QuerySingle (line 89) | public IBaseQueryRelationBuilder<TEntity, TEntity, TEntity> QuerySingl...
    method QuerySingle (line 98) | public IBaseQueryRelationBuilder<TEntity, TEntity, TEntity> QuerySingl...
    method QuerySingle (line 107) | public IBaseQueryRelationBuilder<TEntity, TEntity, TEntity> QuerySingl...
    method QuerySingle (line 116) | public IBaseQueryRelationBuilder<TEntity, TEntity, TEntity> QuerySingl...
    method QuerySingle (line 125) | public IBaseQueryRelationBuilder<TEntity, TEntity, TEntity> QuerySingl...
    method QuerySingle (line 134) | public IBaseQueryRelationBuilder<TEntity, TEntity, TEntity> QuerySingl...
    method QuerySingle (line 144) | public IBaseQueryRelationBuilder<TEntity, TEntity, TEntity> QuerySingl...
    method QuerySingle (line 154) | public IBaseQueryRelationBuilder<TEntity, TEntity, TEntity> QuerySingl...
    method QuerySingle (line 164) | public IBaseQueryRelationBuilder<TEntity, TEntity, TEntity> QuerySingl...
    method QueryInterpolatedSingle (line 173) | public IBaseQueryRelationBuilder<TEntity, TEntity, TEntity> QueryInter...
    method QueryInterpolatedSingle (line 182) | public IBaseQueryRelationBuilder<TEntity, TEntity, TEntity> QueryInter...
    method QueryBatch (line 191) | public IBaseQueryRelationBuilder<TEntity, TEntity, List<TEntity>> Quer...
    method QueryBatch (line 200) | public IBaseQueryRelationBuilder<TEntity, TEntity, List<TEntity>> Quer...
    method QueryBatch (line 209) | public IBaseQueryRelationBuilder<TEntity, TEntity, List<TEntity>> Quer...
    method QueryBatch (line 218) | public IBaseQueryRelationBuilder<TEntity, TEntity, List<TEntity>> Quer...
    method QueryBatch (line 227) | public IBaseQueryRelationBuilder<TEntity, TEntity, List<TEntity>> Quer...
    method QueryBatch (line 236) | public IBaseQueryRelationBuilder<TEntity, TEntity, List<TEntity>> Quer...
    method QueryBatch (line 245) | public IBaseQueryRelationBuilder<TEntity, TEntity, List<TEntity>> Quer...
    method QueryBatch (line 254) | public IBaseQueryRelationBuilder<TEntity, TEntity, List<TEntity>> Quer...
    method QueryBatch (line 263) | public IBaseQueryRelationBuilder<TEntity, TEntity, List<TEntity>> Quer...
    method QueryBatch (line 272) | public IBaseQueryRelationBuilder<TEntity, TEntity, List<TEntity>> Quer...
    method QueryBatch (line 282) | public IBaseQueryRelationBuilder<TEntity, TEntity, List<TEntity>> Quer...
    method QueryBatch (line 292) | public IBaseQueryRelationBuilder<TEntity, TEntity, List<TEntity>> Quer...
    method QueryBatch (line 302) | public IBaseQueryRelationBuilder<TEntity, TEntity, List<TEntity>> Quer...
    method QueryInterpolatedBatch (line 311) | public IBaseQueryRelationBuilder<TEntity, TEntity, List<TEntity>> Quer...
    method QueryInterpolatedBatch (line 320) | public IBaseQueryRelationBuilder<TEntity, TEntity, List<TEntity>> Quer...
    method ValidateConnectionAsync (line 325) | private protected ValueTask ValidateConnectionAsync()

FILE: src/Venflow/TrioKeyCollection.cs
  class TrioKeyCollection (line 6) | internal class TrioKeyCollection<TKeyTwo, TKeyThree, TValue>
    method TrioKeyCollection (line 17) | internal TrioKeyCollection(TValue[] firstCollction, Dictionary<TKeyTwo...
    method TryGetValue (line 26) | internal bool TryGetValue(TKeyTwo key,
    method TryGetValue (line 35) | internal bool TryGetValue(TKeyThree key,

FILE: src/Venflow/TypeArgumentException.cs
  class TypeArgumentException (line 6) | [Serializable]
    method TypeArgumentException (line 10) | public TypeArgumentException() : base() { }
    method TypeArgumentException (line 13) | public TypeArgumentException(string message) : base(message) { }
    method TypeArgumentException (line 16) | public TypeArgumentException(string message, string type) : base(messa...
    method TypeArgumentException (line 19) | public TypeArgumentException(string message, Exception inner) : base(m...

FILE: src/Venflow/TypeExtensions.cs
  class TypeExtensions (line 3) | internal static class TypeExtensions
    method FindProperty (line 5) | internal static PropertyInfo? FindProperty(this Type type, string prop...
    method GetCastMethod (line 17) | internal static MethodInfo? GetCastMethod(this Type type, Type sourceT...

FILE: src/Venflow/UInt64Handler.cs
  class UInt64Handler (line 5) | internal class UInt64Handler : IParameterTypeHandler
    method Handle (line 7) | NpgsqlParameter IParameterTypeHandler.Handle(string name, object val)

FILE: src/Venflow/VenflowConfiguration.cs
  class VenflowConfiguration (line 8) | public static class VenflowConfiguration
    method SetDynamicCacheExpirationTime (line 34) | public static void SetDynamicCacheExpirationTime(TimeSpan timeSpan)
    method SetDynamicCacheExpirationTime (line 48) | public static void SetDynamicCacheExpirationTime(long expirationTime)
    method UseDeepValidation (line 60) | public static void UseDeepValidation(bool validation)
    method SetDefaultValidationIfNeeded (line 66) | internal static void SetDefaultValidationIfNeeded(Assembly assembly)

FILE: src/Venflow/VenflowDbType.cs
  class VenflowDbType (line 6) | public static class VenflowDbType

FILE: test/Venflow.Benchmarks/BenchmarkHandler.cs
  class BenchmarkHandler (line 8) | public class BenchmarkHandler
    method BenchmarkHandler (line 16) | private BenchmarkHandler()
    method Init (line 59) | public static void Init(BenchmarkDb database)
    method Wait (line 73) | public static void Wait()

FILE: test/Venflow.Benchmarks/Benchmarks/BenchmarkBase.cs
  class BenchmarkBase (line 9) | public abstract class BenchmarkBase
    method Setup (line 16) | public virtual Task Setup()
    method Cleanup (line 47) | public virtual async Task Cleanup()

FILE: test/Venflow.Benchmarks/Benchmarks/DeleteBenchmarks/DeleteBatchAsyncBenchmark.cs
  class DeleteBatchAsyncBenchmark (line 10) | [MemoryDiagnoser]
    method Setup (line 18) | [GlobalSetup]
    method IterationSetupAsync (line 28) | public async Task<List<Person>> IterationSetupAsync()
    method EFCoreDeleteBatchAsync (line 42) | [Benchmark(Baseline = true)]
    method VenflowDeleteBatchAsync (line 52) | [Benchmark]
    method RepoDbDeleteBatchAsync (line 60) | [Benchmark]
    method Cleanup (line 69) | [GlobalCleanup]

FILE: test/Venflow.Benchmarks/Benchmarks/DeleteBenchmarks/DeleteSingleAsyncBenchmark.cs
  class DeleteSingleAsyncBenchmark (line 9) | [MemoryDiagnoser]
    method Setup (line 14) | [GlobalSetup]
    method IterationSetupAsync (line 24) | public async Task<Person> IterationSetupAsync()
    method EFCoreDeleteSingleAsync (line 33) | [Benchmark(Baseline = true)]
    method VenflowDeleteSingleAsync (line 43) | [Benchmark]
    method RepoDbDeleteSingleAsync (line 51) | [Benchmark]
    method Cleanup (line 59) | [GlobalCleanup]

FILE: test/Venflow.Benchmarks/Benchmarks/InsertBenchmarks/InsertBatchAsyncBenchmark.cs
  class InsertBatchAsyncBenchmark (line 10) | [MemoryDiagnoser]
    method Setup (line 18) | [GlobalSetup]
    method GetDummyPeople (line 28) | private List<Person> GetDummyPeople()
    method EfCoreInsertBatchAsync (line 40) | [Benchmark(Baseline = true)]
    method VenflowInsertBatchAsync (line 48) | [Benchmark]
    method RepoDbInsertBatchAsync (line 54) | [Benchmark]
    method Cleanup (line 60) | [GlobalCleanup]

FILE: test/Venflow.Benchmarks/Benchmarks/InsertBenchmarks/InsertBatchWithRelationsAsyncBenchmark.cs
  class InsertBatchWithRelationsAsyncBenchmark (line 9) | [MemoryDiagnoser]
    method Setup (line 17) | [GlobalSetup]
    method GetDummyEmails (line 26) | private List<Email> GetDummyEmails()
    method EfCoreInsertBatchAsync (line 52) | [Benchmark(Baseline = true)]
    method VenflowInsertBatchAsync (line 60) | [Benchmark]
    method Cleanup (line 66) | [GlobalCleanup]

FILE: test/Venflow.Benchmarks/Benchmarks/InsertBenchmarks/InsertSingleAsyncBenchmark.cs
  class InsertSingleAsyncBenchmark (line 9) | [MemoryDiagnoser]
    method Setup (line 14) | [GlobalSetup]
    method GetDummyPerson (line 24) | private Person GetDummyPerson()
    method EFCoreInsertSingleAsync (line 29) | [Benchmark(Baseline = true)]
    method VenflowInsertSingleAsync (line 37) | [Benchmark]
    method RepoDbInsertSingleAsync (line 43) | [Benchmark]
    method Cleanup (line 49) | [GlobalCleanup]

FILE: test/Venflow.Benchmarks/Benchmarks/InsertBenchmarks/InsertSingleWithRelationsAsyncBenchmark.cs
  class InsertSingleWithRelationsAsyncBenchmark (line 10) | [MemoryDiagnoser]
    method Setup (line 15) | [GlobalSetup]
    method GetDummyEmail (line 24) | private Email GetDummyEmail()
    method EfCoreInsertSingleAsync (line 48) | [Benchmark(Baseline = true)]
    method VenflowInsertSingleAsync (line 56) | [Benchmark]
    method Cleanup (line 62) | [GlobalCleanup]

FILE: test/Venflow.Benchmarks/Benchmarks/InstantiationBenchmark.cs
  class InstantiationBenchmark (line 8) | [MemoryDiagnoser]
    method Setup (line 12) | [GlobalSetup]
    method InstantiateEFCoreContext (line 21) | [Benchmark]
    method InstantiateVenflowDatabase (line 27) | [Benchmark]

FILE: test/Venflow.Benchmarks/Benchmarks/MiscBenchmarks.cs
  class MiscBenchmarks (line 7) | [MemoryDiagnoser]
    method Setup (line 12) | [GlobalSetup]
    method SpanOverhead (line 18) | [Benchmark]
    method Cleanup (line 24) | [GlobalCleanup]

FILE: test/Venflow.Benchmarks/Benchmarks/QueryBenchmarks/QueryBatchAsyncBenchmark.cs
  class QueryBatchAsyncBenchmark (line 15) | [MemoryDiagnoser]
    method Setup (line 25) | [GlobalSetup]
    method EfCoreQueryBatchAsync (line 51) | [Benchmark(Baseline = true)]
    method EfCoreQueryBatchNoChangeTrackingAsync (line 59) | [Benchmark]
    method EfCoreQueryBatchRawNoChangeTrackingAsync (line 67) | [Benchmark]
    method VenflowQueryBatchAsync (line 75) | [Benchmark]
    method VenflowQueryBatchNoChangeTrackingAsync (line 81) | [Benchmark]
    method RepoDbQueryBatchAsync (line 87) | [Benchmark]
    method DapperQueryBatchAsync (line 93) | [Benchmark]
    method Cleanup (line 99) | [GlobalCleanup]

FILE: test/Venflow.Benchmarks/Benchmarks/QueryBenchmarks/QueryBatchWithRelationsAsyncBenchmark.cs
  class QueryBatchWithRelationsAsyncBenchmark (line 12) | [MemoryDiagnoser]
    method Setup (line 22) | [GlobalSetup]
    method EfCoreQueryBatchAsync (line 47) | [Benchmark(Baseline = true)]
    method EfCoreQueryBatchNoChangeTrackingAsync (line 55) | [Benchmark]
    method VenflowQueryBatchAsync (line 63) | [Benchmark]
    method VenflowQueryBatchNoChangeTrackingAsync (line 69) | [Benchmark]
    method RecommendedDapperQueryBatchAsync (line 75) | [Benchmark]
    method CustomDapperQueryBatchAsync (line 134) | [Benchmark]
    method Cleanup (line 195) | [GlobalCleanup]

FILE: test/Venflow.Benchmarks/Benchmarks/QueryBenchmarks/QuerySingleAsyncBenchmark.cs
  class QuerySingleAsyncBenchmark (line 13) | [MemoryDiagnoser]
    method Setup (line 20) | [GlobalSetup]
    method EfCoreQuerySingleAsync (line 46) | [Benchmark(Baseline = true)]
    method EfCoreQuerySingleNoChangeTrackingAsync (line 54) | [Benchmark]
    method EfCoreQuerySingleRawNoChangeTrackingAsync (line 62) | [Benchmark]
    method VenflowQuerySingleAsync (line 70) | [Benchmark]
    method VenflowQuerySingleNoChangeTrackingAsync (line 76) | [Benchmark]
    method RepoDbQuerySingleAsync (line 82) | [Benchmark]
    method DapperQuerySingleAsync (line 88) | [Benchmark]
    method Cleanup (line 94) | [GlobalCleanup]

FILE: test/Venflow.Benchmarks/Benchmarks/QueryBenchmarks/QuerySingleWithParameterAsyncBenchmark.cs
  class QuerySingleWithParameterAsyncBenchmark (line 15) | [MemoryDiagnoser]
    method Setup (line 21) | [GlobalSetup]
    method VenflowQueryWithParameters (line 33) | [Benchmark]
    method VenflowQueryWithInterpolation (line 39) | [Benchmark]
    method VenflowQueryWithConstLambda (line 45) | [Benchmark]
    method VenflowQueryWithLocalLambda (line 51) | [Benchmark]
    method VenflowQueryWithFieldLambda (line 59) | [Benchmark]
    method RepoDbQueryWithParameters (line 65) | [Benchmark]
    method DapperQueryWithParameters (line 71) | [Benchmark]
    method DapperQueryWithBag (line 77) | [Benchmark]
    method EFCoreQueryWithConstLambda (line 89) | [Benchmark]
    method EFCoreQueryWithLocalLambda (line 95) | [Benchmark]
    method EFCoreQueryWithFieldLambda (line 103) | [Benchmark]
    method Cleanup (line 109) | [GlobalCleanup]

FILE: test/Venflow.Benchmarks/Benchmarks/QueryBenchmarks/QuerySingleWithRelationsAsyncBenchmark.cs
  class QuerySingleWithRelationsAsyncBenchmark (line 12) | [MemoryDiagnoser]
    method Setup (line 19) | [GlobalSetup]
    method EfCoreQuerySingleAsync (line 44) | [Benchmark(Baseline = true)]
    method EfCoreQuerySingleNoChangeTrackingAsync (line 53) | [Benchmark]
    method VenflowQuerySingleAsync (line 61) | [Benchmark]
    method VenflowQuerySingleNoChangeTrackingAsync (line 67) | [Benchmark]
    method RecommendedDapperQuerySingleAsync (line 73) | [Benchmark]
    method CustomDapperQuerySingleAsync (line 132) | [Benchmark]
    method Cleanup (line 192) | [GlobalCleanup]

FILE: test/Venflow.Benchmarks/Benchmarks/UpdateBenchmarks/UpdateBatchAsyncBenchmark.cs
  class UpdateBatchAsyncBenchmark (line 13) | [MemoryDiagnoser]
    method Setup (line 27) | [GlobalSetup]
    method EFCoreUpdateBatchAsync (line 56) | [Benchmark(Baseline = true)]
    method VenflowUpdateBatchAsync (line 67) | [Benchmark]
    method RepoDbUpdateBatchAsync (line 78) | [Benchmark]
    method Cleanup (line 89) | [GlobalCleanup]

FILE: test/Venflow.Benchmarks/Benchmarks/UpdateBenchmarks/UpdateSingleAsyncBenchmark.cs
  class UpdateSingleAsyncBenchmark (line 12) | [MemoryDiagnoser]
    method Setup (line 23) | [GlobalSetup]
    method EFCoreUpdateSingleAsync (line 52) | [Benchmark(Baseline = true)]
    method VenflowUpdateSingleAsync (line 60) | [Benchmark]
    method RepoDbUpdateSingleAsync (line 68) | [Benchmark]
    method Cleanup (line 76) | [GlobalCleanup]

FILE: test/Venflow.Benchmarks/Models/Configurations/BenchmarkDb.cs
  class BenchmarkDb (line 6) | public class BenchmarkDb : Database
    method BenchmarkDb (line 12) | public BenchmarkDb() : base(SecretsHandler.GetConnectionString<Startup...

FILE: test/Venflow.Benchmarks/Models/Configurations/BenchmarkDbContext.cs
  class BenchmarkDbContext (line 7) | public class BenchmarkDbContext : DbContext
    method BenchmarkDbContext (line 13) | public BenchmarkDbContext() : base(new DbContextOptionsBuilder().UseNp...
    method OnModelCreating (line 18) | protected override void OnModelCreating(ModelBuilder modelBuilder)

FILE: test/Venflow.Benchmarks/Models/Email.cs
  class Email (line 9) | [Table("Emails")]
  class EmailConfiguration (line 23) | public class EmailConfiguration : EntityConfiguration<Email>
    method Configure (line 25) | protected override void Configure(IEntityBuilder<Email> entityBuilder)

FILE: test/Venflow.Benchmarks/Models/EmailContent.cs
  class EmailContent (line 6) | [Table("EmailContents")]

FILE: test/Venflow.Benchmarks/Models/Person.cs
  class Person (line 9) | [Table("People")]
  class PersonConfiguration (line 19) | public class PersonConfiguration : EntityConfiguration<Person>
    method Configure (line 21) | protected override void Configure(IEntityBuilder<Person> entityBuilder)

FILE: test/Venflow.Benchmarks/Startup.cs
  class Startup (line 5) | public class Startup
    method Main (line 7) | public static void Main(string[] args)

FILE: test/Venflow.Score/BenchResult.cs
  class BenchResult (line 3) | public class BenchResult
  class BatchBenchResult (line 11) | public class BatchBenchResult : BenchResult

FILE: test/Venflow.Score/Orm.cs
  class Orm (line 6) | public class Orm
    method Orm (line 16) | public Orm((string Name, string Link) ormName)
    method AddBenchScore (line 24) | public void AddBenchScore(double benchScore, double allocScore)
    method FinishBench (line 32) | public void FinishBench(double lowestBenchScore, double lowestAllocScore)

FILE: test/Venflow.Score/Startup.cs
  class Startup (line 13) | public static class Startup
    method Main (line 25) | public static async Task Main(string[] args)
    method ReadBenchResultFiles (line 133) | private static async IAsyncEnumerable<List<BenchResult>> ReadBenchResu...
    method CalculateOrmResults (line 174) | private static async Task CalculateOrmResults(IAsyncEnumerable<List<Be...
    method InsertMarkdownTable (line 232) | private static void InsertMarkdownTable(StringBuilder stringBuilder, i...

FILE: test/Venflow.Score/StringExtensions.cs
  class StringExtensions (line 7) | public static class StringExtensions
    method TrimEnd (line 9) | public static string TrimEnd(this string source, string value)
    method GetNanoSecondTime (line 16) | public static double GetNanoSecondTime(this string val)
    method GetAllocation (line 47) | public static double GetAllocation(this string val)

FILE: test/Venflow.Shared/SecretsHandler.cs
  class SecretsHandler (line 6) | public static class SecretsHandler
    method GetConnectionString (line 8) | public static string GetConnectionString<T>(string type) where T : class
    method IsDevelopmentMachine (line 22) | public static bool IsDevelopmentMachine(string type)

FILE: test/Venflow.Tests.Keys/Key.cs
  type Key (line 5) | [Venflow.GeneratedKey(typeof(Guid))]

FILE: test/Venflow.Tests/DatabaseTests/RelationMapping.cs
  class RelationMapping (line 8) | public class RelationMapping
    method ModelBuilding (line 10) | [Fact]
    method ReverseModelBuilding (line 18) | [Fact]
    method VerifyModelBuildingOrder (line 26) | private void VerifyModelBuildingOrder(IReadOnlyDictionary<string, Enti...

FILE: test/Venflow.Tests/DeleteTests/BatchDelete.cs
  class BatchDelete (line 9) | public class BatchDelete : TestBase
    method DeleteAsync (line 11) | [Fact]
    method InsertPeopleAsync (line 21) | private async Task<List<Person>> InsertPeopleAsync()

FILE: test/Venflow.Tests/DeleteTests/SingleDelete.cs
  class SingleDelete (line 8) | public class SingleDelete : TestBase
    method DeleteAsync (line 10) | [Fact]
    method InsertPersonAsync (line 20) | private async Task<Person> InsertPersonAsync()

FILE: test/Venflow.Tests/GeneratorTests/KeyGenerationTests.cs
  class KeyGeneration (line 12) | public class KeyGeneration
    method GenerateKey (line 14) | [Theory]
    method CreateCompilation (line 60) | private static Compilation CreateCompilation(string source, params Ass...

FILE: test/Venflow.Tests/InsertTests/BatchInsert.cs
  class BatchInsert (line 9) | public class BatchInsert : TestBase
    method InsertWithNoRelationAsync (line 11) | [Fact]
    method InsertWithNoRelationNoPKAsync (line 23) | [Fact]
    method InsertWithRelationAsync (line 39) | [Fact]
    method InsertWithRelationNoPKAsync (line 51) | [Fact]
    method InsertWithPartialRelationAsync (line 67) | [Fact]
    method InsertWithPartialRelationReversedAsync (line 79) | [Fact]
    method ReverseInsertWithRelationAsync (line 91) | [Fact]
    method GetPeople (line 103) | private List<Person> GetPeople()
    method GetPeopleWithRelation (line 113) | private List<Person> GetPeopleWithRelation()
    method GetPeopleWithFullRelation (line 123) | private List<Person> GetPeopleWithFullRelation()
    method GetEmailsWithFullRelation (line 133) | private List<Email> GetEmailsWithFullRelation()
    method GetEmailsWithRelation (line 145) | private List<Email> GetEmailsWithRelation()

FILE: test/Venflow.Tests/InsertTests/SingleInsert.cs
  class SingleInsert (line 8) | public class SingleInsert : TestBase
    method InsertIndividualRelationAsync (line 10) | [Fact]
    method InsertWithNoRelationAsync (line 28) | [Fact]
    method InsertWithNoRelationNoPKAsync (line 40) | [Fact]
    method InsertWithRelationNoPKAsync (line 52) | [Fact]
    method InsertWithPartialRelationAsync (line 69) | [Fact]
    method InsertWithPartialRelationReversedAsync (line 81) | [Fact]
    method InsertWithRelationAsync (line 93) | [Fact]
    method ReverseInsertWithRelationAsync (line 105) | [Fact]
    method GetPerson (line 117) | private Person GetPerson()
    method GetPersonWithRelation (line 122) | private Person GetPersonWithRelation()
    method GetPersonWithFullRelation (line 127) | private Person GetPersonWithFullRelation()
    method GetEmailWithRelation (line 132) | private Email GetEmailWithRelation()
    method GetEmailWithFullRelation (line 137) | private Email GetEmailWithFullRelation()

FILE: test/Venflow.Tests/JsonTests/KeyConverter.cs
  class KeyConverter (line 9) | public class KeyConverter : TestBase
    method TwoWayParsing (line 11) | [Fact]
    method TwoWayParsingOfKey (line 36) | [Fact]
    class Entity (line 57) | private class Entity

FILE: test/Venflow.Tests/JsonTests/NewtonsoftJson.cs
  class NewtonsoftJson (line 10) | public class NewtonsoftJson : TestBase
    method TwoWayParsing (line 12) | [Fact]
    method TwoWayParsingOfNull (line 33) | [Fact]
    method TwoWayParsingOfKey (line 52) | [Fact]
    class Entity (line 68) | private class Entity

FILE: test/Venflow.Tests/JsonTests/SystemJson.cs
  class SystemJson (line 9) | public class SystemJson : TestBase
    method TwoWayParsing (line 11) | [Fact]
    method TwoWayParsingOfNull (line 30) | [Fact]
    method TwoWayParsingOfKey (line 47) | [Fact]
    class Entity (line 61) | private class Entity

FILE: test/Venflow.Tests/LogTests/LogTests.cs
  class LogTests (line 8) | public class LogTests : TestBase
    method LogToWrapperAsync (line 10) | [Fact]
    method LogMultipleToWrapperAsync (line 29) | [Fact]
    method DoNotLogMultipleToWrapperAsync (line 48) | [Fact]

FILE: test/Venflow.Tests/MiscTests.cs
  class MiscTests (line 7) | public class MiscTests
    method EnsureFormattableSqlStringBuilderUsesParameters (line 9) | [Fact]

FILE: test/Venflow.Tests/Models/Blog.cs
  class Blog (line 3) | public class Blog

FILE: test/Venflow.Tests/Models/BlogConfiguration.cs
  class BlogConfiguration (line 7) | public class BlogConfiguration : EntityConfiguration<Blog>
    method Configure (line 9) | protected override void Configure(IEntityBuilder<Blog> entityBuilder)

FILE: test/Venflow.Tests/Models/Dummy.cs
  class Dummy (line 3) | public class Dummy

FILE: test/Venflow.Tests/Models/DummyEnum.cs
  type DummyEnum (line 3) | public enum DummyEnum

FILE: test/Venflow.Tests/Models/Email.cs
  class Email (line 5) | public class Email

FILE: test/Venflow.Tests/Models/EmailConfiguration.cs
  class EmailConfiguration (line 6) | public class EmailConfiguration : EntityConfiguration<Email>
    method Configure (line 8) | protected override void Configure(IEntityBuilder<Email> entityBuilder)

FILE: test/Venflow.Tests/Models/EmailContent.cs
  class EmailContent (line 3) | public class EmailContent

FILE: test/Venflow.Tests/Models/Person.cs
  class Person (line 7) | public class Person

FILE: test/Venflow.Tests/Models/PersonConfiguration.cs
  class PersonConfiguration (line 6) | public class PersonConfiguration : EntityConfiguration<Person>
    method Configure (line 8) | protected override void Configure(IEntityBuilder<Person> entityBuilder)

FILE: test/Venflow.Tests/Models/PostgreEnum.cs
  type PostgreEnum (line 3) | public enum PostgreEnum

FILE: test/Venflow.Tests/Models/RelationDatabase.cs
  class RelationDatabase (line 5) | public class RelationDatabase : Database
    method RelationDatabase (line 15) | public RelationDatabase() : base(SecretsHandler.GetConnectionString<Re...
    method Configure (line 20) | protected override void Configure(DatabaseConfigurationOptionsBuilder ...

FILE: test/Venflow.Tests/Models/ReverseEmail.cs
  class ReverseEmail (line 5) | public class ReverseEmail

FILE: test/Venflow.Tests/Models/ReverseEmailConfiguration.cs
  class ReverseEmailConfiguration (line 6) | public class ReverseEmailConfiguration : EntityConfiguration<ReverseEmail>
    method Configure (line 8) | protected override void Configure(IEntityBuilder<ReverseEmail> entityB...

FILE: test/Venflow.Tests/Models/ReverseEmailContent.cs
  class ReverseEmailContent (line 3) | public class ReverseEmailContent

FILE: test/Venflow.Tests/Models/ReverseEmailContentConfiguration.cs
  class ReverseEmailContentConfiguration (line 6) | public class ReverseEmailContentConfiguration : EntityConfiguration<Reve...
    method Configure (line 8) | protected override void Configure(IEntityBuilder<ReverseEmailContent> ...

FILE: test/Venflow.Tests/Models/ReversePerson.cs
  class ReversePerson (line 5) | public class ReversePerson

FILE: test/Venflow.Tests/Models/ReverseRelationDatabase.cs
  class ReverseRelationDatabase (line 5) | public class ReverseRelationDatabase : Database
    method ReverseRelationDatabase (line 11) | public ReverseRelationDatabase() : base(SecretsHandler.GetConnectionSt...

FILE: test/Venflow.Tests/Models/UncommonType.cs
  class UncommonType (line 5) | public class UncommonType

FILE: test/Venflow.Tests/Models/User.cs
  class User (line 5) | public class User

FILE: test/Venflow.Tests/Models/UserConfiguration.cs
  class UserConfiguration (line 6) | public class UserConfiguration : EntityConfiguration<User>
    method Configure (line 8) | protected override void Configure(IEntityBuilder<User> entityBuilder)

FILE: test/Venflow.Tests/QueryTests/BatchQuery.cs
  class BatchQuery (line 11) | [TestCaseOrderer(PriorityOrderer.Name, PriorityOrderer.Assembly)]
    method QueryWithRelationAndNoIncludeAsync (line 14) | [Fact, Priority(0)]
    method QueryWithNoRelationAndIncludeAsync (line 29) | [Fact, Priority(1)]
    method QueryWithNoRelationAndNoResultAsync (line 44) | [Fact]
    method QueryWithNoRelationAsync (line 52) | [Fact]
    method QueryWithRelationAsync (line 73) | [Fact]
    method InsertPeopleAsync (line 102) | private async Task<List<Person>> InsertPeopleAsync()
    method InsertPeopleWithRelationAsync (line 114) | private async Task<List<Person>> InsertPeopleWithRelationAsync()

FILE: test/Venflow.Tests/QueryTests/CustomQuery.cs
  class CustomQuery (line 7) | [TestCaseOrderer(PriorityOrderer.Name, PriorityOrderer.Assembly)]
    method QueryWithNoRelationAsync (line 10) | [Fact]
    method QueryBatchWithNoRelationAsync (line 21) | [Fact]
  class CustomResponse (line 34) | public class CustomResponse

FILE: test/Venflow.Tests/QueryTests/ExpressionQuery.cs
  class ExpressionQuery (line 9) | public class ExpressionQuery : TestBase
    method QueryWithExpressionAndCustomAsync (line 11) | [Fact]
    method QueryWithExpressionAsync (line 22) | [Fact]
    method QueryWithRelationsExpressionAsync (line 38) | [Fact]
    method QueryWithExpressionAndLocalsAsync (line 66) | [Theory]
    method QueryWithExpressionAndThisAsync (line 95) | [Fact]
    method QueryWithExpressionAndLocalsAndThisAsync (line 118) | public async Task QueryWithExpressionAndLocalsAndThisAsync(int paramet...
    method QueryWithExpressionAndDbTypeAsync (line 144) | [Fact]
    method SampleMethod (line 160) | private int SampleMethod(int value)
    method InsertPersonAsync (line 163) | private async Task<Person> InsertPersonAsync()
    method InsertPeopleWithRelationAsync (line 172) | private async Task<List<Person>> InsertPeopleWithRelationAsync()

FILE: test/Venflow.Tests/QueryTests/SingleQuery.cs
  class SingleQuery (line 11) | [TestCaseOrderer(PriorityOrderer.Name, PriorityOrderer.Assembly)]
    method QueryWithNoRelationAsync (line 14) | [Fact]
    method QueryWithLogger (line 31) | [Fact]
    method QueryWithInterpolatedArray (line 57) | [Fact]
    method QueryWithMissingColumnAsync (line 67) | [Fact]
    method QueryWithMissingNullColumnAsync (line 85) | [Fact]
    method QueryWithNoRelationAndNoResultAsync (line 102) | [Fact]
    method QueryWithNoRelationAndIncludeAsync (line 110) | [Fact, Priority(0)]
    method QueryWithRelationAsync (line 125) | [Fact]
    method QueryWithInterpolationRelationAsync (line 150) | [Fact]
    method QueryWithRelationAndNoIncludeAsync (line 175) | [Fact, Priority(0)]
    method InsertPersonAsync (line 188) | private async Task<Person> InsertPersonAsync()
    method InsertPersonWithNullAsync (line 197) | private async Task<Person> InsertPersonWithNullAsync()
    method InsertPersonWithRelationAsync (line 206) | private async Task<Person> InsertPersonWithRelationAsync()

FILE: test/Venflow.Tests/SpecificTypes/CLREnumTests.cs
  class CLREnumTests (line 7) | public class CLREnumTests : TestBase
    method Query (line 9) | [Fact]
    method QueryNullableValue (line 26) | [Fact]
    method Insert (line 43) | [Fact]
    method InsertNullable (line 60) | [Fact]
    method InsertNullableValue (line 77) | [Fact]
    method Update (line 94) | [Fact]
    method UpdateNullable (line 114) | [Fact]
    method UpdateNullableValue (line 137) | [Fact]

FILE: test/Venflow.Tests/SpecificTypes/CLRUIntKeyTests.cs
  class CLRUIntKeyTests (line 7) | public class CLRUIntKeyTests : TestBase
    method Query (line 9) | [Fact]
    method QueryNullableValue (line 26) | [Fact]
    method Insert (line 43) | [Fact]
    method InsertMax (line 60) | [Fact]
    method InsertNullable (line 77) | [Fact]
    method InsertNullableValue (line 94) | [Fact]
    method InsertMaxNullableValue (line 111) | [Fact]
    method Update (line 128) | [Fact]
    method UpdateMax (line 148) | [Fact]
    method UpdateNullable (line 168) | [Fact]
    method UpdateMaxNullable (line 191) | [Fact]
    method UpdateNullableValue (line 214) | [Fact]
    method UpdateMaxNullableValue (line 237) | [Fact]

FILE: test/Venflow.Tests/SpecificTypes/CLRUIntTests.cs
  class CLRUIntTests (line 7) | public class CLRUIntTests : TestBase
    method Query (line 9) | [Fact]
    method QueryNullableValue (line 26) | [Fact]
    method Insert (line 43) | [Fact]
    method InsertMax (line 60) | [Fact]
    method InsertNullable (line 77) | [Fact]
    method InsertNullableValue (line 94) | [Fact]
    method InsertMaxNullableValue (line 111) | [Fact]
    method Update (line 128) | [Fact]
    method UpdateMax (line 148) | [Fact]
    method UpdateNullable (line 168) | [Fact]
    method UpdateMaxNullable (line 191) | [Fact]
    method UpdateNullableValue (line 214) | [Fact]
    method UpdateMaxNullableValue (line 237) | [Fact]

FILE: test/Venflow.Tests/SpecificTypes/GuidTests.cs
  class GuidTests (line 8) | public class GuidTests : TestBase
    method Insert (line 10) | [Fact]
    method InsertNullable (line 29) | [Fact]
    method InsertNullableValue (line 46) | [Fact]
    method Update (line 65) | [Fact]
    method UpdateNullable (line 87) | [Fact]
    method UpdateNullableValue (line 110) | [Fact]

FILE: test/Venflow.Tests/SpecificTypes/KeyTests.cs
  class KeyTests (line 9) | public class KeyTests : TestBase
    method Equality (line 11) | [Fact]
    method HashCode (line 23) | [Fact]
    method KeyToString (line 33) | [Fact]
    method Query (line 43) | [Fact]
    method QueryNullableValue (line 62) | [Fact]
    method Insert (line 81) | [Fact]
    method InsertNullable (line 100) | [Fact]
    method InsertNullableValue (line 117) | [Fact]
    method Update (line 136) | [Fact]
    method UpdateNullable (line 158) | [Fact]
    method UpdateNullableValue (line 181) | [Fact]

FILE: test/Venflow.Tests/SpecificTypes/PostgresEnumTests.cs
  class PostgresEnumTests (line 7) | public class PostgresEnumTests : TestBase
    method Query (line 9) | [Fact]
    method QueryNullableValue (line 26) | [Fact]
    method Insert (line 43) | [Fact]
    method InsertNullable (line 60) | [Fact]
    method InsertNullableValue (line 77) | [Fact]
    method Update (line 94) | [Fact]
    method UpdateNullable (line 114) | [Fact]
    method UpdateNullableValue (line 137) | [Fact]

FILE: test/Venflow.Tests/TableExtensions.cs
  class TableExtensions (line 7) | internal static class TableExtensions
    method ClearMaterializerCache (line 9) | internal static void ClearMaterializerCache<TEntity>(this Table<TEntit...

FILE: test/Venflow.Tests/TableTests.cs
  class TableTests (line 7) | public class TableTests : TestBase
    method Count (line 9) | [Fact]
    method Truncate (line 23) | [Fact]

FILE: test/Venflow.Tests/TestBase.cs
  class TestBase (line 6) | public abstract class TestBase : IDisposable
    method TestBase (line 10) | protected TestBase()
    method Dispose (line 15) | public void Dispose()

FILE: test/Venflow.Tests/TransactionTests/TransactionTests.cs
  class TransactionTests (line 10) | public class TransactionTests : TestBase
    method ReuseTransactionAsync (line 12) | [Fact]
    method RollbackToTransactionSavepointAsync (line 20) | [Fact]
    class ThrowingEmail (line 47) | private class ThrowingEmail : Email

FILE: test/Venflow.Tests/UnitTestHandler.cs
  class UnitTestHandler (line 7) | public class UnitTestHandler
    method UnitTestHandler (line 15) | private UnitTestHandler()
    method Init (line 58) | public static void Init(Database database)
    method Wait (line 72) | public static void Wait()

FILE: test/Venflow.Tests/UpdateTests/BatchUpdate.cs
  class BatchUpdate (line 10) | public class BatchUpdate : TestBase
    method UpdateFromQueryAsync (line 12) | [Fact]
    method UpdateFromManualAsync (line 35) | [Fact]
    method ThrowOnNoneProxyEntityTrackChanges (line 58) | [Fact]
    method InsertPeopleAsync (line 70) | private async Task<List<Person>> InsertPeopleAsync()

FILE: test/Venflow.Tests/UpdateTests/CustomUpdate.cs
  class CustomUpdate (line 8) | public class CustomUpdate : TestBase
    method CopyChangeTrackingEntityAsync (line 10) | [Fact]
    method InstantiateChangeTrackingEntity (line 33) | [Fact]
    method InsertPersonWithRelationAsync (line 42) | private async Task<Person> InsertPersonWithRelationAsync()

FILE: test/Venflow.Tests/UpdateTests/SingleUpdate.cs
  class SingleUpdate (line 9) | public class SingleUpdate : TestBase
    method UpdateFromQueryAsync (line 11) | [Fact]
    method UpdateFromManualAsync (line 31) | [Fact]
    method ThrowOnNoneProxyEntityTrackChanges (line 51) | [Fact]
    method InsertPersonAsync (line 59) | private async Task<Person> InsertPersonAsync()
Condensed preview — 541 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (7,803K chars).
[
  {
    "path": ".editorconfig",
    "chars": 7477,
    "preview": "# Top-most EditorConfig file\nroot = true\n[*.cs]\n\n\n#Core editorconfig formatting - indentation\n\n#use soft tabs (spaces) f"
  },
  {
    "path": ".gitattributes",
    "chars": 2555,
    "preview": "###############################################################################\n# Set default behavior to automatically "
  },
  {
    "path": ".github/FUNDING.yml",
    "chars": 113,
    "preview": "# These are supported funding model platforms\n\ngithub: TwentyFourMinutes\ncustom: https://www.paypal.me/24minutes\n"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/---bug-report.md",
    "chars": 853,
    "preview": "---\nname: \"\\U0001F41E Bug report\"\nabout: Create a report about something that is not working.\ntitle: ''\nlabels: bug\nassi"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/---feature request.md",
    "chars": 548,
    "preview": "---\nname: 💡 Feature Request\nabout: Suggest an idea for this project.\ntitle: ''\nlabels: enhancement\nassignees: TwentyFour"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/config.yml",
    "chars": 265,
    "preview": "blank_issues_enabled: true\ncontact_links:\n  - name: Discussions\n    url: https://github.com/TwentyFourMinutes/Venflow/di"
  },
  {
    "path": ".github/dependabot.yml",
    "chars": 314,
    "preview": "version: 2\nupdates:\n  - package-ecosystem: \"github-actions\"\n    directory: \"/\"\n    schedule:\n      interval: \"daily\"\n   "
  },
  {
    "path": ".github/workflows/benchmarks.yml",
    "chars": 2220,
    "preview": "name: Benchmarks\n\non:\n  release:\n    types: [created]\n\n  workflow_dispatch:\n    inputs:\n      logLevel:\n        descript"
  },
  {
    "path": ".github/workflows/build.yml",
    "chars": 2596,
    "preview": "name: .NET Core\n\non:\n  push:\n    branches: [ dev ]\n  pull_request:\n    branches: [ dev ]\n\njobs:\n  build:\n\n    runs-on: u"
  },
  {
    "path": ".github/workflows/cla.yml",
    "chars": 828,
    "preview": "name: \"CLA Assistant\"\non:\n  issue_comment:\n    types: [created]\n  pull_request_target:\n    types: [opened,closed,synchro"
  },
  {
    "path": ".github/workflows/codeql-analysis.yml",
    "chars": 2152,
    "preview": "# For most projects, this workflow file will not need changing; you simply need\n# to commit it to your repository.\n#\n# Y"
  },
  {
    "path": ".github/workflows/devskim-analysis.yml",
    "chars": 604,
    "preview": "name: DevSkim\n\non:\n  push:\n    branches: [ dev ]\n  pull_request:\n    branches: [ dev ]\n  schedule:\n    - cron: '20 22 * "
  },
  {
    "path": ".github/workflows/publish.yml",
    "chars": 2475,
    "preview": "name: Publish to NuGet\non:\n  push:\n    branches:\n      - dev\njobs:\n  publish:\n    name: build, pack & publish\n    runs-o"
  },
  {
    "path": ".github/workflows/securitycodescan-analysis.yml",
    "chars": 894,
    "preview": "name: SecurityCodeScan\n\non:\n  push:\n    branches: [ dev ]\n  pull_request:\n    branches: [ dev ]\n  schedule:\n    - cron: "
  },
  {
    "path": ".github/workflows/shiftleft-analysis.yml",
    "chars": 959,
    "preview": "name: SL Scan\n\non:\n  push:\n    branches: [ dev ]\n  pull_request:\n    branches: [ dev ]\n  schedule:\n    - cron: '39 4 * *"
  },
  {
    "path": ".gitignore",
    "chars": 6110,
    "preview": "## Ignore Visual Studio temporary files, build results, and\n## files generated by popular Visual Studio add-ons.\n##\n## G"
  },
  {
    "path": "CLA.md",
    "chars": 6056,
    "preview": "# Individual Contributor License Agreement\n\nAdapted from http://www.apache.org/licenses/icla.pdf © The Apache Software F"
  },
  {
    "path": "CODE_OF_CONDUCT.md",
    "chars": 3354,
    "preview": "# Contributor Covenant Code of Conduct\n\n## Our Pledge\n\nIn the interest of fostering an open and welcoming environment, w"
  },
  {
    "path": "CONTRIBUTING.md",
    "chars": 3679,
    "preview": "# Contributing to Venflow\nFirst and foremost, I want to say, thank you! Maintaining this project is not an easy task and"
  },
  {
    "path": "Directory.Build.props",
    "chars": 2084,
    "preview": "<Project>\n  <PropertyGroup>\n    <LangVersion>preview</LangVersion>\n    <Nullable>enable</Nullable>\n    <AnalysisLevel>pr"
  },
  {
    "path": "LICENSE",
    "chars": 11357,
    "preview": "                                 Apache License\n                           Version 2.0, January 2004\n                   "
  },
  {
    "path": "README.md",
    "chars": 12893,
    "preview": "<p align=\"center\">\n <img width=\"100px\" src=\"images/venflow.png\" align=\"center\" alt=\"GitHub Readme Stats\" />\n <h1 align=\""
  },
  {
    "path": "SECURITY.md",
    "chars": 592,
    "preview": "# Security Policy\n\n## Supported Versions\n\nCurrently only the latest release candiate of the project is supported with se"
  },
  {
    "path": "Venflow.sln",
    "chars": 8159,
    "preview": "Microsoft Visual Studio Solution File, Format Version 12.00\n# Visual Studio Version 17\nVisualStudioVersion = 17.0.31410."
  },
  {
    "path": "benchmarks/DeleteBatch.csv",
    "chars": 5759,
    "preview": "Method,Job,AnalyzeLaunchVariance,EvaluateOverhead,MaxAbsoluteError,MaxRelativeError,MinInvokeCount,MinIterationTime,Outl"
  },
  {
    "path": "benchmarks/DeleteBatch.md",
    "chars": 2890,
    "preview": "``` ini\n\nBenchmarkDotNet=v0.13.0, OS=ubuntu 20.04\nIntel Xeon CPU E5-2673 v4 2.30GHz, 1 CPU, 2 logical and 2 physical cor"
  },
  {
    "path": "benchmarks/DeleteSingle.csv",
    "chars": 1891,
    "preview": "Method,Job,AnalyzeLaunchVariance,EvaluateOverhead,MaxAbsoluteError,MaxRelativeError,MinInvokeCount,MinIterationTime,Outl"
  },
  {
    "path": "benchmarks/DeleteSingle.md",
    "chars": 890,
    "preview": "``` ini\n\nBenchmarkDotNet=v0.13.0, OS=ubuntu 20.04\nIntel Xeon CPU E5-2673 v4 2.30GHz, 1 CPU, 2 logical and 2 physical cor"
  },
  {
    "path": "benchmarks/InsertBatch.csv",
    "chars": 5816,
    "preview": "Method,Job,AnalyzeLaunchVariance,EvaluateOverhead,MaxAbsoluteError,MaxRelativeError,MinInvokeCount,MinIterationTime,Outl"
  },
  {
    "path": "benchmarks/InsertBatch.md",
    "chars": 2992,
    "preview": "``` ini\n\nBenchmarkDotNet=v0.13.0, OS=ubuntu 20.04\nIntel Xeon CPU E5-2673 v4 2.30GHz, 1 CPU, 2 logical and 2 physical cor"
  },
  {
    "path": "benchmarks/InsertBatchWithRelations.csv",
    "chars": 4054,
    "preview": "Method,Job,AnalyzeLaunchVariance,EvaluateOverhead,MaxAbsoluteError,MaxRelativeError,MinInvokeCount,MinIterationTime,Outl"
  },
  {
    "path": "benchmarks/InsertBatchWithRelations.md",
    "chars": 2267,
    "preview": "``` ini\n\nBenchmarkDotNet=v0.13.0, OS=ubuntu 20.04\nIntel Xeon CPU E5-2673 v4 2.30GHz, 1 CPU, 2 logical and 2 physical cor"
  },
  {
    "path": "benchmarks/InsertSingle.csv",
    "chars": 1888,
    "preview": "Method,Job,AnalyzeLaunchVariance,EvaluateOverhead,MaxAbsoluteError,MaxRelativeError,MinInvokeCount,MinIterationTime,Outl"
  },
  {
    "path": "benchmarks/InsertSingle.md",
    "chars": 890,
    "preview": "``` ini\n\nBenchmarkDotNet=v0.13.0, OS=ubuntu 20.04\nIntel Xeon CPU E5-2673 v4 2.30GHz, 1 CPU, 2 logical and 2 physical cor"
  },
  {
    "path": "benchmarks/InsertSingleWithRelations.csv",
    "chars": 1476,
    "preview": "Method,Job,AnalyzeLaunchVariance,EvaluateOverhead,MaxAbsoluteError,MaxRelativeError,MinInvokeCount,MinIterationTime,Outl"
  },
  {
    "path": "benchmarks/InsertSingleWithRelations.md",
    "chars": 772,
    "preview": "``` ini\n\nBenchmarkDotNet=v0.13.0, OS=ubuntu 20.04\nIntel Xeon CPU E5-2673 v4 2.30GHz, 1 CPU, 2 logical and 2 physical cor"
  },
  {
    "path": "benchmarks/Instantiation.csv",
    "chars": 1441,
    "preview": "Method,Job,AnalyzeLaunchVariance,EvaluateOverhead,MaxAbsoluteError,MaxRelativeError,MinInvokeCount,MinIterationTime,Outl"
  },
  {
    "path": "benchmarks/Instantiation.md",
    "chars": 704,
    "preview": "``` ini\n\nBenchmarkDotNet=v0.13.0, OS=ubuntu 20.04\nIntel Xeon CPU E5-2673 v4 2.30GHz, 1 CPU, 2 logical and 2 physical cor"
  },
  {
    "path": "benchmarks/QueryBatch.csv",
    "chars": 12632,
    "preview": "Method,Job,AnalyzeLaunchVariance,EvaluateOverhead,MaxAbsoluteError,MaxRelativeError,MinInvokeCount,MinIterationTime,Outl"
  },
  {
    "path": "benchmarks/QueryBatch.md",
    "chars": 5657,
    "preview": "``` ini\n\nBenchmarkDotNet=v0.13.0, OS=ubuntu 20.04\nIntel Xeon CPU E5-2673 v4 2.30GHz, 1 CPU, 2 logical and 2 physical cor"
  },
  {
    "path": "benchmarks/QueryBatchWithRelations.csv",
    "chars": 11036,
    "preview": "Method,Job,AnalyzeLaunchVariance,EvaluateOverhead,MaxAbsoluteError,MaxRelativeError,MinInvokeCount,MinIterationTime,Outl"
  },
  {
    "path": "benchmarks/QueryBatchWithRelations.md",
    "chars": 5058,
    "preview": "``` ini\n\nBenchmarkDotNet=v0.13.0, OS=ubuntu 20.04\nIntel Xeon CPU E5-2673 v4 2.30GHz, 1 CPU, 2 logical and 2 physical cor"
  },
  {
    "path": "benchmarks/QuerySingle.csv",
    "chars": 3575,
    "preview": "Method,Job,AnalyzeLaunchVariance,EvaluateOverhead,MaxAbsoluteError,MaxRelativeError,MinInvokeCount,MinIterationTime,Outl"
  },
  {
    "path": "benchmarks/QuerySingle.md",
    "chars": 1497,
    "preview": "``` ini\n\nBenchmarkDotNet=v0.13.0, OS=ubuntu 20.04\nIntel Xeon CPU E5-2673 v4 2.30GHz, 1 CPU, 2 logical and 2 physical cor"
  },
  {
    "path": "benchmarks/QuerySingleWithParameter.csv",
    "chars": 5083,
    "preview": "Method,Job,AnalyzeLaunchVariance,EvaluateOverhead,MaxAbsoluteError,MaxRelativeError,MinInvokeCount,MinIterationTime,Outl"
  },
  {
    "path": "benchmarks/QuerySingleWithParameter.md",
    "chars": 1639,
    "preview": "``` ini\n\nBenchmarkDotNet=v0.13.0, OS=ubuntu 20.04\nIntel Xeon CPU E5-2673 v4 2.30GHz, 1 CPU, 2 logical and 2 physical cor"
  },
  {
    "path": "benchmarks/QuerySingleWithRelations.csv",
    "chars": 3180,
    "preview": "Method,Job,AnalyzeLaunchVariance,EvaluateOverhead,MaxAbsoluteError,MaxRelativeError,MinInvokeCount,MinIterationTime,Outl"
  },
  {
    "path": "benchmarks/QuerySingleWithRelations.md",
    "chars": 1364,
    "preview": "``` ini\n\nBenchmarkDotNet=v0.13.0, OS=ubuntu 20.04\nIntel Xeon CPU E5-2673 v4 2.30GHz, 1 CPU, 2 logical and 2 physical cor"
  },
  {
    "path": "benchmarks/UpdateBatch.csv",
    "chars": 5830,
    "preview": "Method,Job,AnalyzeLaunchVariance,EvaluateOverhead,MaxAbsoluteError,MaxRelativeError,MinInvokeCount,MinIterationTime,Outl"
  },
  {
    "path": "benchmarks/UpdateBatch.md",
    "chars": 3026,
    "preview": "``` ini\n\nBenchmarkDotNet=v0.13.0, OS=ubuntu 20.04\nIntel Xeon CPU E5-2673 v4 2.30GHz, 1 CPU, 2 logical and 2 physical cor"
  },
  {
    "path": "benchmarks/UpdateSingle.csv",
    "chars": 1888,
    "preview": "Method,Job,AnalyzeLaunchVariance,EvaluateOverhead,MaxAbsoluteError,MaxRelativeError,MinInvokeCount,MinIterationTime,Outl"
  },
  {
    "path": "benchmarks/UpdateSingle.md",
    "chars": 890,
    "preview": "``` ini\n\nBenchmarkDotNet=v0.13.0, OS=ubuntu 20.04\nIntel Xeon CPU E5-2673 v4 2.30GHz, 1 CPU, 2 logical and 2 physical cor"
  },
  {
    "path": "docs/api/System.Runtime.CompilerServices.IgnoresAccessChecksToAttribute.html",
    "chars": 11420,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/api/System.Runtime.CompilerServices.NullableAttribute.html",
    "chars": 12677,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/api/System.Runtime.CompilerServices.NullableContextAttribute.html",
    "chars": 10979,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/api/System.Runtime.CompilerServices.html",
    "chars": 6752,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/api/Venflow.AspNetCore.VenflowServiceCollectionExtensions.html",
    "chars": 25511,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/api/Venflow.AspNetCore.html",
    "chars": 6218,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/api/Venflow.Commands.IBaseInsertRelationBuilder-2.html",
    "chars": 21735,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/api/Venflow.Commands.IBaseQueryRelationBuilder-3.html",
    "chars": 55428,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/api/Venflow.Commands.IDeleteCommand-1.html",
    "chars": 21267,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/api/Venflow.Commands.IDeleteCommandBuilder-1.html",
    "chars": 22918,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/api/Venflow.Commands.IInsertCommand-1.html",
    "chars": 13018,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/api/Venflow.Commands.IInsertCommandBuilder-1.html",
    "chars": 14592,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/api/Venflow.Commands.IInsertRelationBuilder-2.html",
    "chars": 21108,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/api/Venflow.Commands.IPreCommandBuilder-2.html",
    "chars": 11747,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/api/Venflow.Commands.IQueryCommand-2.html",
    "chars": 15035,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/api/Venflow.Commands.IQueryCommandBuilder-2.html",
    "chars": 14297,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/api/Venflow.Commands.IQueryRelationBuilder-3.html",
    "chars": 59638,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/api/Venflow.Commands.ISpecficVenflowCommandBuilder-2.html",
    "chars": 18140,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/api/Venflow.Commands.IUpdateCommand-1.html",
    "chars": 15405,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/api/Venflow.Commands.IUpdateCommandBuilder-1.html",
    "chars": 22204,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/api/Venflow.Commands.IVenflowCommand-1.html",
    "chars": 7546,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/api/Venflow.Commands.IVenflowCommandBuilder-1.html",
    "chars": 100222,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/api/Venflow.Commands.html",
    "chars": 9566,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/api/Venflow.Database.html",
    "chars": 54341,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/api/Venflow.DatabaseConfigurationOptionsBuilder.html",
    "chars": 25263,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/api/Venflow.DatabaseOptionsBuilder-1.html",
    "chars": 14411,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/api/Venflow.Enums.CommandType.html",
    "chars": 9016,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/api/Venflow.Enums.ForeignTruncateOptions.html",
    "chars": 7948,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/api/Venflow.Enums.IdentityTruncateOptions.html",
    "chars": 7823,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/api/Venflow.Enums.JoinBehaviour.html",
    "chars": 7969,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/api/Venflow.Enums.LoggingBehavior.html",
    "chars": 7479,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/api/Venflow.Enums.html",
    "chars": 6835,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/api/Venflow.Extensions.Logging.DatabaseOptionsBuilderExtensions.html",
    "chars": 12093,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/api/Venflow.Extensions.Logging.html",
    "chars": 6316,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/api/Venflow.FormattableSqlStringBuilder.html",
    "chars": 17837,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/api/Venflow.IDatabaseTransaction.html",
    "chars": 29422,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/api/Venflow.IKey-2.html",
    "chars": 9404,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/api/Venflow.IKey.html",
    "chars": 8512,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/api/Venflow.IParameterTypeHandler.html",
    "chars": 9669,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/api/Venflow.InvalidEntityRelationException.html",
    "chars": 16123,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/api/Venflow.Json.JsonKeyConverterFactory.html",
    "chars": 11883,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/api/Venflow.Json.html",
    "chars": 6182,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/api/Venflow.Key-2.html",
    "chars": 29569,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/api/Venflow.KeyConverter.html",
    "chars": 26049,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/api/Venflow.LoggerCallback.html",
    "chars": 8110,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/api/Venflow.Modeling.Definitions.Builder.IEntityBuilder-1.html",
    "chars": 39913,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/api/Venflow.Modeling.Definitions.Builder.IForeignKeyRelationBuilder-2.html",
    "chars": 13546,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/api/Venflow.Modeling.Definitions.Builder.ILeftRelationBuilder-1.html",
    "chars": 23148,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/api/Venflow.Modeling.Definitions.Builder.IMultiRightRelationBuilder-2.html",
    "chars": 11594,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/api/Venflow.Modeling.Definitions.Builder.INotRequiredMultiRightRelationBuilder-2.html",
    "chars": 11728,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/api/Venflow.Modeling.Definitions.Builder.INotRequiredSingleRightRelationBuilder-2.html",
    "chars": 10962,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/api/Venflow.Modeling.Definitions.Builder.IPropertyBuilder.html",
    "chars": 16203,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/api/Venflow.Modeling.Definitions.Builder.IRequiredMultiRightRelationBuilder-2.html",
    "chars": 8951,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/api/Venflow.Modeling.Definitions.Builder.IRequiredSingleRightRelationBuilder-2.html",
    "chars": 11431,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/api/Venflow.Modeling.Definitions.Builder.html",
    "chars": 9031,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/api/Venflow.Modeling.Definitions.EntityConfiguration-1.html",
    "chars": 10980,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/api/Venflow.Modeling.Definitions.html",
    "chars": 6608,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/api/Venflow.NewtonsoftJson.NewtonsoftJsonKeyConverter.html",
    "chars": 15502,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/api/Venflow.NewtonsoftJson.html",
    "chars": 6258,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/api/Venflow.NpgsqlCommandExtensions.html",
    "chars": 13145,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/api/Venflow.NpgsqlQuotedNameTranslator.html",
    "chars": 12251,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/api/Venflow.ParameterTypeHandler.html",
    "chars": 9465,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/api/Venflow.Table-1.html",
    "chars": 99398,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/api/Venflow.TableBase-1.html",
    "chars": 125930,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/api/Venflow.TypeArgumentException.html",
    "chars": 14107,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/api/Venflow.VenflowConfiguration.html",
    "chars": 19689,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/api/Venflow.VenflowDbType.html",
    "chars": 119810,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/api/Venflow.html",
    "chars": 10633,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/api/index.html",
    "chars": 6015,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/api/toc.html",
    "chars": 17270,
    "preview": "\n<div id=\"sidetoggle\">\n  <div>\n    <div class=\"sidefilter\">\n      <form class=\"toc-filter\">\n        <span class=\"glyphi"
  },
  {
    "path": "docs/docfx/.gitignore",
    "chars": 106,
    "preview": "###############\n#    folder   #\n###############\n/**/DROP/\n/**/TEMP/\n/**/packages/\n/**/bin/\n/**/obj/\n_site\n"
  },
  {
    "path": "docs/docfx/api/.gitignore",
    "chars": 64,
    "preview": "###############\n#  temp file  #\n###############\n*.yml\n.manifest\n"
  },
  {
    "path": "docs/docfx/api/System.Runtime.CompilerServices.IgnoresAccessChecksToAttribute.html",
    "chars": 11444,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/docfx/api/System.Runtime.CompilerServices.NullableAttribute.html",
    "chars": 12709,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/docfx/api/System.Runtime.CompilerServices.NullableContextAttribute.html",
    "chars": 11003,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/docfx/api/System.Runtime.CompilerServices.html",
    "chars": 6752,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/docfx/api/Venflow.AspNetCore.VenflowServiceCollectionExtensions.html",
    "chars": 25551,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/docfx/api/Venflow.AspNetCore.html",
    "chars": 6218,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/docfx/api/Venflow.Commands.IBaseInsertRelationBuilder-2.html",
    "chars": 21775,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/docfx/api/Venflow.Commands.IBaseQueryRelationBuilder-3.html",
    "chars": 55532,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/docfx/api/Venflow.Commands.IDeleteCommand-1.html",
    "chars": 21316,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/docfx/api/Venflow.Commands.IDeleteCommandBuilder-1.html",
    "chars": 22967,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/docfx/api/Venflow.Commands.IInsertCommand-1.html",
    "chars": 13043,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/docfx/api/Venflow.Commands.IInsertCommandBuilder-1.html",
    "chars": 14617,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/docfx/api/Venflow.Commands.IInsertRelationBuilder-2.html",
    "chars": 21140,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/docfx/api/Venflow.Commands.IPreCommandBuilder-2.html",
    "chars": 11763,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/docfx/api/Venflow.Commands.IQueryCommand-2.html",
    "chars": 15068,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/docfx/api/Venflow.Commands.IQueryCommandBuilder-2.html",
    "chars": 14322,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/docfx/api/Venflow.Commands.IQueryRelationBuilder-3.html",
    "chars": 59742,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/docfx/api/Venflow.Commands.ISpecficVenflowCommandBuilder-2.html",
    "chars": 18096,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/docfx/api/Venflow.Commands.IUpdateCommand-1.html",
    "chars": 15438,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/docfx/api/Venflow.Commands.IUpdateCommandBuilder-1.html",
    "chars": 22253,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/docfx/api/Venflow.Commands.IVenflowCommand-1.html",
    "chars": 7554,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/docfx/api/Venflow.Commands.IVenflowCommandBuilder-1.html",
    "chars": 100222,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/docfx/api/Venflow.Commands.html",
    "chars": 9566,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/docfx/api/Venflow.Database.html",
    "chars": 54484,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/docfx/api/Venflow.DatabaseConfigurationOptionsBuilder.html",
    "chars": 16190,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/docfx/api/Venflow.DatabaseOptionsBuilder-1.html",
    "chars": 14435,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/docfx/api/Venflow.DatabaseOptionsBuilder.html",
    "chars": 20718,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/docfx/api/Venflow.Enums.CommandType.html",
    "chars": 9024,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/docfx/api/Venflow.Enums.ForeignTruncateOptions.html",
    "chars": 7956,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/docfx/api/Venflow.Enums.IdentityTruncateOptions.html",
    "chars": 7831,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/docfx/api/Venflow.Enums.JoinBehaviour.html",
    "chars": 7977,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/docfx/api/Venflow.Enums.LoggingBehavior.html",
    "chars": 7487,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/docfx/api/Venflow.Enums.html",
    "chars": 6835,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/docfx/api/Venflow.Extensions.Logging.DatabaseOptionsBuilderExtensions.html",
    "chars": 12109,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/docfx/api/Venflow.Extensions.Logging.html",
    "chars": 6316,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/docfx/api/Venflow.FormattableSqlStringBuilder.html",
    "chars": 17886,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/docfx/api/Venflow.IDatabaseTransaction.html",
    "chars": 29518,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/docfx/api/Venflow.IKey-2.html",
    "chars": 9235,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/docfx/api/Venflow.IKey.html",
    "chars": 6853,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/docfx/api/Venflow.IParameterTypeHandler.html",
    "chars": 9685,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/docfx/api/Venflow.InvalidEntityRelationException.html",
    "chars": 16163,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/docfx/api/Venflow.Json.JsonKeyConverterFacotry.html",
    "chars": 11887,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/docfx/api/Venflow.Json.JsonKeyConverterFactory.html",
    "chars": 11907,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/docfx/api/Venflow.Json.html",
    "chars": 6182,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/docfx/api/Venflow.Key-2.html",
    "chars": 28021,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/docfx/api/Venflow.KeyConverter.html",
    "chars": 24295,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/docfx/api/Venflow.LoggerCallback.html",
    "chars": 8118,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/docfx/api/Venflow.Modeling.Definitions.Builder.IForeignKeyRelationBuilder-2.html",
    "chars": 13570,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/docfx/api/Venflow.Modeling.Definitions.Builder.ILeftRelationBuilder-1.html",
    "chars": 23189,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/docfx/api/Venflow.Modeling.Definitions.Builder.IMultiRightRelationBuilder-2.html",
    "chars": 11610,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/docfx/api/Venflow.Modeling.Definitions.Builder.INotRequiredMultiRightRelationBuilder-2.html",
    "chars": 11744,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/docfx/api/Venflow.Modeling.Definitions.Builder.INotRequiredSingleRightRelationBuilder-2.html",
    "chars": 10978,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/docfx/api/Venflow.Modeling.Definitions.Builder.IRequiredMultiRightRelationBuilder-2.html",
    "chars": 8959,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/docfx/api/Venflow.Modeling.Definitions.Builder.IRequiredSingleRightRelationBuilder-2.html",
    "chars": 11447,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/docfx/api/Venflow.Modeling.Definitions.Builder.html",
    "chars": 8181,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/docfx/api/Venflow.Modeling.Definitions.EntityConfiguration-1.html",
    "chars": 10751,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/docfx/api/Venflow.Modeling.Definitions.html",
    "chars": 6571,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/docfx/api/Venflow.NewtonsoftJson.NewtonsoftJsonKeyConverter.html",
    "chars": 15534,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/docfx/api/Venflow.NewtonsoftJson.html",
    "chars": 6258,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/docfx/api/Venflow.NpgsqlCommandExtensions.html",
    "chars": 13170,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/docfx/api/Venflow.ParameterTypeHandler.html",
    "chars": 9482,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/docfx/api/Venflow.Table-1.html",
    "chars": 99638,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/docfx/api/Venflow.TableBase-1.html",
    "chars": 126209,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/docfx/api/Venflow.Tests.Keys.Key-1.html",
    "chars": 7232,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/docfx/api/Venflow.Tests.Keys.html",
    "chars": 6058,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/docfx/api/Venflow.TypeArgumentException.html",
    "chars": 12982,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/docfx/api/Venflow.VenflowConfiguration.html",
    "chars": 19746,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/docfx/api/Venflow.html",
    "chars": 10285,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/docfx/api/index.html",
    "chars": 6015,
    "preview": "<!DOCTYPE html>\n<!--[if IE]><![endif]-->\n<html>\n  \n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compa"
  },
  {
    "path": "docs/docfx/api/index.md",
    "chars": 174,
    "preview": "---\nuid: API.Docs\ntitle: The API Docs of Venflow\n---\n\n# Welcome to the API Documentation of Venflow\nHere you will be abl"
  },
  {
    "path": "docs/docfx/api/toc.html",
    "chars": 16417,
    "preview": "\n<div id=\"sidetoggle\">\n  <div>\n    <div class=\"sidefilter\">\n      <form class=\"toc-filter\">\n        <span class=\"glyphi"
  },
  {
    "path": "docs/docfx/docfx.json",
    "chars": 1891,
    "preview": "{\n  \"metadata\": [\n    {\n      \"src\": [\n        {\n          \"src\": \"../../src/\",\n          \"files\": [ \"**/**.csproj\" ],\n "
  },
  {
    "path": "docs/docfx/filterConfig.yml",
    "chars": 174,
    "preview": "apiRules:\n- exclude:\n    hasAttribute:\n      uid: System.ComponentModel.EditorBrowsableAttribute\n      ctorArguments:\n  "
  },
  {
    "path": "docs/docfx/guides/advanced/aspnetcore.md",
    "chars": 698,
    "preview": "---\nuid: Guides.Advanced.AspNetCore\ntitle: Asp.Net Core with Venflow\n---\n\n# Asp.Net Core with Venflow\n\nVenflow natively "
  },
  {
    "path": "docs/docfx/guides/advanced/enums.md",
    "chars": 1043,
    "preview": "---\nuid: Guides.Advanced.Enums\ntitle: Enums with Venflow\n---\n\n# Enums with Venflow\n\nEnums are quite heavily used in C# a"
  },
  {
    "path": "docs/docfx/guides/advanced/interpolation.md",
    "chars": 4490,
    "preview": "---\nuid: Guides.Advanced.Interpolation\ntitle: Interpolation with Venflow\n---\n\n# Interpolation with Venflow\n\n*If you neve"
  }
]

// ... and 341 more files (download for full content)

About this extraction

This page contains the full source code of the TwentyFourMinutes/Venflow GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 541 files (7.1 MB), approximately 1.9M tokens, and a symbol index with 1511 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!