Esempio n. 1
0
        private IEdmModel ModelDB()
        {
            try
            {
                #region odata
                var       optionsBuilder = new DbContextOptionsBuilder <DynamicDbContext>();
                IEdmModel edmModel;
                //optionsBuilder = optionsBuilder.UseSqlServer("Server=.;Initial Catalog=test;Trusted_Connection=No;UID=sa;PWD=Your_password123;Connect Timeout=5");
                //using (var providerSchema = new SqlServerSchema(optionsBuilder.Options))

                var con = Environment.GetEnvironmentVariable("MySql");
                optionsBuilder = optionsBuilder.UseMySQL(con);
                using (var providerSchema = new MySqlSchema(optionsBuilder.Options))
                //var con = Environment.GetEnvironmentVariable("Postgres");
                //optionsBuilder = optionsBuilder.UseNpgsql(con);
                //using (var providerSchema = new PostgreSqlSchema(optionsBuilder.Options))
                {
                    edmModel = DynamicMiddlewareHelper.CreateEdmModel(providerSchema, informationSchemaMapping: null);
                }
                return(edmModel);

                #endregion
            }
            catch (Exception ex)
            {
                Console.WriteLine($" exception {ex.Message}");
                return(null);
            }
        }
Esempio n. 2
0
        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app)
        {
            String basePath           = Configuration.GetValue <String>("OdataToEntity:BasePath");
            String provider           = Configuration.GetValue <String>("OdataToEntity:Provider");
            String connectionString   = Configuration.GetValue <String>("OdataToEntity:ConnectionString");
            bool   useRelationalNulls = Configuration.GetValue <bool>("OdataToEntity:UseRelationalNulls");
            String informationSchemaMappingFileName = Configuration.GetValue <String>("OdataToEntity:InformationSchemaMappingFileName");

            if (!String.IsNullOrEmpty(basePath) && basePath[0] != '/')
            {
                basePath = "/" + basePath;
            }

            InformationSchemaMapping?informationSchemaMapping = null;

            if (informationSchemaMappingFileName != null)
            {
                String json = File.ReadAllText(informationSchemaMappingFileName);
                informationSchemaMapping = Newtonsoft.Json.JsonConvert.DeserializeObject <InformationSchemaMapping>(json);
            }

            var schemaFactory = new DynamicSchemaFactory(provider, connectionString);

            using (ProviderSpecificSchema providerSchema = schemaFactory.CreateSchema(useRelationalNulls))
            {
                IEdmModel edmModel = DynamicMiddlewareHelper.CreateEdmModel(providerSchema, informationSchemaMapping);
                app.UseOdataToEntityMiddleware <OePageMiddleware>(basePath, edmModel);
            }
        }
Esempio n. 3
0
        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app)
        {
            String basePath           = Configuration.GetValue <String>("OdataToEntity:BasePath");
            String provider           = Configuration.GetValue <String>("OdataToEntity:Provider");
            String connectionString   = Configuration.GetValue <String>("OdataToEntity:ConnectionString");
            bool   useRelationalNulls = Configuration.GetValue <bool>("OdataToEntity:UseRelationalNulls");
            String?informationSchemaMappingFileName = Configuration.GetValue <String>("OdataToEntity:InformationSchemaMappingFileName");
            String?filter        = Configuration.GetValue <String>("OdataToEntity:Filter");
            String?defaultSchema = Configuration.GetSection("OdataToEntity:DefaultSchema").Get <String>();

            String[]? includedSchemas = Configuration.GetSection("OdataToEntity:IncludedSchemas").Get <String[]>();
            String[]? excludedSchemas = Configuration.GetSection("OdataToEntity:ExcludedSchemas").Get <String[]>();

            if (!String.IsNullOrEmpty(basePath) && basePath[0] != '/')
            {
                basePath = "/" + basePath;
            }

            var informationSchemaSettings = new InformationSchemaSettings();

            if (!String.IsNullOrEmpty(defaultSchema))
            {
                informationSchemaSettings.DefaultSchema = defaultSchema;
            }
            if (includedSchemas != null)
            {
                informationSchemaSettings.IncludedSchemas = new HashSet <String>(includedSchemas);
            }
            if (excludedSchemas != null)
            {
                informationSchemaSettings.ExcludedSchemas = new HashSet <String>(excludedSchemas);
            }
            if (filter != null)
            {
                informationSchemaSettings.ObjectFilter = Enum.Parse <DbObjectFilter>(filter, true);
            }
            if (informationSchemaMappingFileName != null)
            {
                String json = File.ReadAllText(informationSchemaMappingFileName);
                var    informationSchemaMapping = System.Text.Json.JsonSerializer.Deserialize <InformationSchemaMapping>(json) !;
                informationSchemaSettings.Operations = informationSchemaMapping.Operations;
                informationSchemaSettings.Tables     = informationSchemaMapping.Tables;
            }

            var schemaFactory = new DynamicSchemaFactory(provider, connectionString);

            using (ProviderSpecificSchema providerSchema = schemaFactory.CreateSchema(useRelationalNulls))
            {
                IEdmModel edmModel = DynamicMiddlewareHelper.CreateEdmModel(providerSchema, informationSchemaSettings);
                app.UseOdataToEntityMiddleware <OePageMiddleware>(basePath, edmModel);
            }
        }
Esempio n. 4
0
        private IEdmModel ModelDB()
        {
            try
            {
                #region odata
                var       optionsBuilder = new DbContextOptionsBuilder <DynamicDbContext>();
                IEdmModel edmModel;
                optionsBuilder = optionsBuilder.UseSqlServer("Server=.;Initial Catalog=test;Trusted_Connection=No;UID=sa;PWD=Your_password123;Connect Timeout=5");

                using (var providerSchema = new SqlServerSchema(optionsBuilder.Options))
                {
                    edmModel = DynamicMiddlewareHelper.CreateEdmModel(providerSchema, informationSchemaMapping: null);
                }
                return(edmModel);

                #endregion
            }
            catch (Exception)
            {
                return(null);
            }
        }