Example #1
0
        public static void UseMongoDb <TContext>(this EntityContextOptionsBuilder <TContext> builder,
                                                 string connectionString,
                                                 string database,
                                                 EventQueueType eventQueueType = EventQueueType.InMemory)
            where TContext : EntityContext
        {
            RegisterConventions(MongoDB.Bson.GuidRepresentation.Standard);

            var options = new MongoEntityContextOptions <TContext>
            {
                ConnectionString = connectionString,
                DatabaseName     = database,
            };

            builder.Builder
            .Services
            .AddSingleton(options)
            .AddTransient <IDatabaseTransactionManager <TContext>, MongoDatabaseTransactionManager <TContext> >()
            .AddScoped <IDatabaseCollectionProvider <TContext>, MongoDatabaseCollectionProvider <TContext> >()
            .AddScoped <MongoDatabaseFactory <TContext> >()
            .AddSingleton <MongoClientFactory <TContext> >()
            .AddEventQueue <TContext>(eventQueueType);
        }
Example #2
0
 public MongoClientFactory(MongoEntityContextOptions <TContext> options)
 {
     _options     = options ?? throw new ArgumentNullException(nameof(options));
     _mongoClient = new MongoClient(new MongoUrl(_options.ConnectionString));
 }