Net4x.DapperLibrary.Mock 1.9.9.7

There is a newer version of this package available.
See the version list below for details.
dotnet add package Net4x.DapperLibrary.Mock --version 1.9.9.7
                    
NuGet\Install-Package Net4x.DapperLibrary.Mock -Version 1.9.9.7
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Net4x.DapperLibrary.Mock" Version="1.9.9.7" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Net4x.DapperLibrary.Mock" Version="1.9.9.7" />
                    
Directory.Packages.props
<PackageReference Include="Net4x.DapperLibrary.Mock" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Net4x.DapperLibrary.Mock --version 1.9.9.7
                    
#r "nuget: Net4x.DapperLibrary.Mock, 1.9.9.7"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Net4x.DapperLibrary.Mock@1.9.9.7
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Net4x.DapperLibrary.Mock&version=1.9.9.7
                    
Install as a Cake Addin
#tool nuget:?package=Net4x.DapperLibrary.Mock&version=1.9.9.7
                    
Install as a Cake Tool

DapperLibrary.Mock

In-memory/mock provider integration for DapperLibrary. This project supplies a mock ADO.NET provider and a MockedDapperContext implementation useful for unit tests, integration tests and examples where a real database is not required.

Purpose

Provide a fast, deterministic, test-friendly mock provider that implements the same DapperContext surface without requiring an actual database engine. This enables unit tests to run quickly and independently of external resources.

Features

  • MockedDapperContext � a DapperContext implementation backed by a mock provider.
  • MockProviderFactory � a provider factory that delegates to a mock DbProviderFactory (MockFactory) and configures ParameterModel behavior.
  • MockDatabaseModel, MockDatabaseModelTypes, MockDatabaseEnumTypes � type and model mappings that mirror common SQL Server behaviors for compatibility with DapperLibrary APIs.
  • Adapter event forwarding for RowUpdating / RowUpdated on the mock data adapter used by the provider factory.

Key types

  • MockedDapperContext

    • Derives from DapperContext and wires the MockProviderFactory along with configuration via DapperConfigurationManager scoped to the mock provider namespace.
    • Provides Use, UseOnce and Use(string, string) helpers like other provider-specific contexts to integrate with DapperContextFactory.
    • When contexts are created via the helpers, the database model is configured with SQL Server-style defaults (identity initializer and datetime formatting).
  • MockProviderFactory

    • Inherits from ProviderFactoryBase and uses a runtime mock DbProviderFactory from the Mock.Data assembly.
    • Sets ParameterModel.ParameterPrefix = "@" and ParameterModel.AddIndex = true to emulate SQL Server-style parameter handling.
    • Installs PrepareCommandParameters to keep parameter binding consistent with other providers in DapperLibraries.

Usage

Create and use the mock context in tests:

using var context = new MockedDapperContext();

// use context.Operations / context.Schema / context.SaveDataTable etc.

Register the mock context creator for code that consumes DapperContextFactory:

MockedDapperContext.Use();
// or
MockedDapperContext.UseOnce();

Use a named connection if you need to emulate multiple connections:

MockedDapperContext.Use("Data Source=Mock;Provider=MockProvider");

Multi-targeting & compatibility

  • The mock provider project targets legacy frameworks (net35/net40) in the repository to maximize compatibility with older test projects. The mock provider is intended for use in unit tests and should be referenced by test projects targeting compatible frameworks.
  • Because the mock provider does not depend on external database drivers, it is useful across multiple target frameworks included in the solution.

Synchronous vs asynchronous behavior

  • The mock provider implements the same synchronous and asynchronous method names as the real providers. Async variants may run synchronously under the hood depending on the mock implementation but maintain the same API contract which simplifies testing of async application code.
  • Use the Async-suffixed methods in tests to verify async flows; the mock provider's Task-returning methods will behave predictably for assertions.

Notes and best practices

  • The mock provider mirrors SQL Server-like behavior for identifier delimiters and parameter conventions to minimize surprises in tests that also target SQL Server.
  • Use the mock provider for unit tests where DB I/O is not required; for integration tests prefer provider-specific integration helpers (like MockSqlServer or provider integrations) that exercise real database behavior.

For implementation details review MockProviderFactory, MockedDapperContext, and the DbContexts types in this project.

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
.NET Core netcoreapp2.0 was computed.  netcoreapp2.1 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.0 is compatible.  netstandard2.1 is compatible. 
.NET Framework net35 is compatible.  net40 is compatible.  net403 was computed.  net45 is compatible.  net451 was computed.  net452 was computed.  net46 was computed.  net461 is compatible.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen40 was computed.  tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.9.9.26271 90 9/28/2026
1.9.9.26270 87 9/27/2026
1.9.9.26263 92 9/20/2026
1.9.9.26248 110 9/4/2026
1.9.9.26247 102 9/4/2026
1.9.9.9 140 7/27/2026
1.9.9.8 145 2/2/2026
1.9.9.7 130 1/13/2026
1.9.9.6 131 1/6/2026
1.9.9.5 135 1/6/2026
1.9.9.4 130 1/6/2026
1.9.9.3 132 1/5/2026
1.9.9.2 139 12/30/2025
1.9.9.1 130 12/30/2025
1.9.9 219 12/22/2025
1.6.0.12 173 12/12/2025
1.6.0.11 160 12/12/2025
1.6.0.10 490 12/9/2025
1.6.0.9 249 12/4/2025
1.6.0.8 247 12/4/2025
Loading failed