MongoDB.Extensions.Repository
1.0.0
See the version list below for details.
dotnet add package MongoDB.Extensions.Repository --version 1.0.0
NuGet\Install-Package MongoDB.Extensions.Repository -Version 1.0.0
<PackageReference Include="MongoDB.Extensions.Repository" Version="1.0.0" />
paket add MongoDB.Extensions.Repository --version 1.0.0
#r "nuget: MongoDB.Extensions.Repository, 1.0.0"
// Install MongoDB.Extensions.Repository as a Cake Addin #addin nuget:?package=MongoDB.Extensions.Repository&version=1.0.0 // Install MongoDB.Extensions.Repository as a Cake Tool #tool nuget:?package=MongoDB.Extensions.Repository&version=1.0.0
mongo-repository
Repository pattern for the official MongoDB .NET Core driver.
Installation
The package is available on NuGet.
dotnet add package MongoDB.Repository
Basic Usage
For basic, generic access, inject IMongoRepository<TEntity>
into your services for example:
public class SomeService
{
private readonly IMongoRepository<SomeEntity> _repository;
public SomeService(IMongoRepository<SomeEntity> repository)
{
_repository = repository;
}
public async Task<SomeEntity> GetSomeDataAsync(string id) => await _repository.GetAsync(id);
}
By default, collections will be named in lower snake_case
.
Configuration
Configuration is easy in ASP.Net Core applications. In Startup.cs
:
public void ConfigureServices(IServiceCollection services)
{
var assembly = typeof(Startup).Assembly;
services.AddMongoRepositories(_configuration.GetConnectionString("mongo"))
.FromAssembly(assembly) // Registers all classes that implement IMongoRepository<TEntity>
.WithIndexesFromAssembly(assembly); // Registers all classes that implement MongoIndexProfile<TEntity>
}
Indexes
Configured indexes will be created the first time that a collection is accessed.
To configure indexes, implement MongoIndexProfile<TEntity>
for example, to create an ascending, case insensitive, unique index on SomeEntity.Name
called name_unique
:
public class SomeIndexProfile : MongoIndexProfile<SomeEntity>
{
public SomeIndexProfile()
{
Add("name_unique", IndexKeys.Ascending(x => x.Name), o => o.Unique().WithCaseInsensitiveCollation());
}
}
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
- Humanizer.Core (>= 2.2.0)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 2.0.0)
- Microsoft.Extensions.Options (>= 2.0.1)
- MongoDB.Driver (>= 2.5.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.