Пример #1
0
        public static IODataApiBuilder AddODataApiMongoDb(this IODataApiBuilder oDataApiBuilder, string connection)
        {
            MongoDefaults.GuidRepresentation = MongoDB.Bson.GuidRepresentation.Standard;
            oDataApiBuilder.Services.TryAddSingleton <IMongoDatabase>(services =>
            {
                var urlBuilder = new MongoUrlBuilder(connection);
                var client     = new MongoClient(connection);
                return(client.GetDatabase(urlBuilder.DatabaseName));
            });

            return(oDataApiBuilder);
        }
Пример #2
0
        public static IODataApiBuilder AddEntityFramework <TContext>(this IODataApiBuilder builder) where TContext : DbContext
        {
            var serviceProvider = builder.Services.BuildServiceProvider();
            var context         = serviceProvider.GetRequiredService <TContext>();
            var properties      = typeof(TContext).GetProperties();
            var types           = context.Model.GetEntityTypes();

            foreach (var entityType in types)
            {
                var dbSetType = typeof(DbSet <>).MakeGenericType(entityType.ClrType);
                var property  = properties.FirstOrDefault(_ => _.PropertyType.IsAssignableFrom(dbSetType));
                builder.AddResource(entityType.ClrType, property != null ? property.Name.ToLower() : null);
            }


            builder.Services.TryAddTransient <DbContext, TContext>();
            builder.Services.TryAddScoped(typeof(ICrudRepository <,>), typeof(DbSetRepository <,>));
            return(builder);
        }
Пример #3
0
 public static IODataApiBuilder AddEasyDocDb(this IODataApiBuilder oDataApiBuilder, string folder = "../data")
 {
     oDataApiBuilder.Services.TryAddSingleton(new DocumentRepositoryFactory(folder));
     return(oDataApiBuilder);
 }
Пример #4
0
 public static IODataApiBuilder AddEasyDocDb(this IODataApiBuilder oDataApiBuilder, string connection, IDocumentStorage storage)
 {
     oDataApiBuilder.Services.TryAddSingleton(new DocumentRepositoryFactory(connection, storage));
     return(oDataApiBuilder);
 }