Chakra.Core.MongoDb 2.0.11

Provider for MongoDB in Chakra.Core framework

Install-Package Chakra.Core.MongoDb -Version 2.0.11
dotnet add package Chakra.Core.MongoDb --version 2.0.11
<PackageReference Include="Chakra.Core.MongoDb" Version="2.0.11" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Chakra.Core.MongoDb --version 2.0.11
The NuGet Team does not provide support for this client. Please contact its maintainers for support.

Chakra.Core.MongoDb

Provider for MongoDB in Chakra.Core framework

Please checkout README.md on "Chakra.Core" package, first...
Then:

  1. Define your own MongoDbOptions implementation like that:
public class ApplicationMongoDbOptions: IMongoDbOptions
{
    public string ConnectionString { get; set; }

    public ApplicationMongoDbOptions()
    {        
        //Set connection string from application configuration, xml files, hardcoded, etc.
        ConnectionString = "mongodb://dbusername:dbpassword@servername/databasename?authSource=authenticationdatabase";
    }
}
  1. Implement a concrete class for a storage provider on MongoDb Core
[Repository]
public class MongoDbProductRepository: MongoDbRepositoryBase<Product, ApplicationMongoDbOptions>, IProductRepository
{
    public MongoDbProductRepository(IDataSession dataSession) 
        : base(dataSession) { }

    public IList<Product> FetchAvailableProductsInPeriod(DateTime from, DateTime to) 
    {
        //TODO...Insert here the method implementation
		//ex: => DataSession.Database.GetCollection<Product>().Where(p => ...
    }
}
  1. Register default data session for application
SessionFactory.RegisterDefaultSession<MongoDbDataSession<ApplicationMongoDbOptions>>();
  1. Open session on storage (ex. database) using default configured provider, resolve repository interface
    using registered storage provider and obtain concrete repository implementation
using (IDataSession dataSession = SessionFactory.OpenSession())
{
    var productRepository = dataSession.ResolveRepository<IProductRepository>();

    var entities = productRepository.FetchAvailableProductsInPeriod(
        new DateTime(2013, 8, 1), DateTime.Now);
}

You have the opportunity to switch a provider (ex. from fake to Entity Framework, from NHibernate
to MongoDb) changing a single line of code on your application that can be really database agnostic
and every single part can be tested in its own isolated context.

Chakra.Core.MongoDb

Provider for MongoDB in Chakra.Core framework

Please checkout README.md on "Chakra.Core" package, first...
Then:

  1. Define your own MongoDbOptions implementation like that:
public class ApplicationMongoDbOptions: IMongoDbOptions
{
    public string ConnectionString { get; set; }

    public ApplicationMongoDbOptions()
    {        
        //Set connection string from application configuration, xml files, hardcoded, etc.
        ConnectionString = "mongodb://dbusername:dbpassword@servername/databasename?authSource=authenticationdatabase";
    }
}
  1. Implement a concrete class for a storage provider on MongoDb Core
[Repository]
public class MongoDbProductRepository: MongoDbRepositoryBase<Product, ApplicationMongoDbOptions>, IProductRepository
{
    public MongoDbProductRepository(IDataSession dataSession) 
        : base(dataSession) { }

    public IList<Product> FetchAvailableProductsInPeriod(DateTime from, DateTime to) 
    {
        //TODO...Insert here the method implementation
		//ex: => DataSession.Database.GetCollection<Product>().Where(p => ...
    }
}
  1. Register default data session for application
SessionFactory.RegisterDefaultSession<MongoDbDataSession<ApplicationMongoDbOptions>>();
  1. Open session on storage (ex. database) using default configured provider, resolve repository interface
    using registered storage provider and obtain concrete repository implementation
using (IDataSession dataSession = SessionFactory.OpenSession())
{
    var productRepository = dataSession.ResolveRepository<IProductRepository>();

    var entities = productRepository.FetchAvailableProductsInPeriod(
        new DateTime(2013, 8, 1), DateTime.Now);
}

You have the opportunity to switch a provider (ex. from fake to Entity Framework, from NHibernate
to MongoDb) changing a single line of code on your application that can be really database agnostic
and every single part can be tested in its own isolated context.

Version History

Version Downloads Last updated
2.0.11 117 10/30/2018
2.0.10 204 7/17/2018