TK.MongoDB.Repository.NetCore
1.0.0-rc1
See the version list below for details.
dotnet add package TK.MongoDB.Repository.NetCore --version 1.0.0-rc1
NuGet\Install-Package TK.MongoDB.Repository.NetCore -Version 1.0.0-rc1
<PackageReference Include="TK.MongoDB.Repository.NetCore" Version="1.0.0-rc1" />
paket add TK.MongoDB.Repository.NetCore --version 1.0.0-rc1
#r "nuget: TK.MongoDB.Repository.NetCore, 1.0.0-rc1"
// Install TK.MongoDB.Repository.NetCore as a Cake Addin #addin nuget:?package=TK.MongoDB.Repository.NetCore&version=1.0.0-rc1&prerelease // Install TK.MongoDB.Repository.NetCore as a Cake Tool #tool nuget:?package=TK.MongoDB.Repository.NetCore&version=1.0.0-rc1&prerelease
TK.MongoDB.Repository.NetCore
Repository pattern implementation of MongoDB collections using LINQ with optional Dependency Tracking in .NET Standard 2.0.
Usage
Connection
Connection string should be provided by using Connection
class. Inject this class in the following manner if you are using DI:
services.AddTransient(x => new Connection(Configuration.GetConnectionString("DefaultConnection")));
Settings
Global collection settings can be applied by using
Settings.Configure<T>
whereT
is collection model implementingIDbModel
. This method accepts:- Connection (for connection string)
- Expire After (for ExpiryAfterSeconds index)
- Create Collection Options ()
Use this method with a specific collection model, make sure this method is called once for each application run.
If you intend to use Dependency Tracking, you can specify commands to <u>not</u> track by setting the
Settings.NotTrackedCommands
, by default the following commands are not not tracked:- isMaster
- buildInfo
- getLastError
- saslStart
- saslContinue
- listIndexes
Collections
Create a collection model implementing IDbModel
interface for use in repository. The name of this model will be used as collection name in MongoDB. For example:
public class Activity : IDbModel
{
public ObjectId Id { get; set; }
public bool Deleted { get; set; }
public DateTime CreationDate { get; set; }
public DateTime? UpdationDate { get; set; }
public string Name { get; set; }
}
Dependency Tracking
To use dependency tracking implement the IDependencyTracker
interface to meet your needs. For example:
public class DependencyTracker : IDependencyTracker
{
public void Dependency(string name, string description, bool success, TimeSpan duration)
{
Console.WriteLine($"{name}-{description}-{success}-{duration}");
}
}
Examples & Tests
Refer to TK.MongoDB.Test project for all Unit Tests and examples.
Product | Versions 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. |
.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 was computed. |
.NET Framework | net461 was computed. 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. |
-
.NETStandard 2.0
- MongoDB.Driver (>= 2.11.6)
- System.Collections.Immutable (>= 5.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Initial release