protected override void OnModelCreating(DbModelBuilder modelBuilder) { modelBuilder.Conventions.Remove <DecimalPropertyConvention>(); modelBuilder.Conventions.Add(new DecimalPropertyConvention(18, 4)); modelBuilder.HasDefaultSchema("jwell"); base.OnModelCreating(modelBuilder); Dasebase databaseType = GetDatabaseType(); SetDefaultSchema(databaseType, modelBuilder); }
protected virtual void SetDefaultSchema(Dasebase databaseType, DbModelBuilder modelBuilder) { switch (databaseType) { case Dasebase.SqlServer: modelBuilder.HasDefaultSchema("dbo"); break; case Dasebase.Oracle: { string text = base.Database.Connection.ConnectionString.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries) .FirstOrDefault((string p) => p.Trim().StartsWith("User Id", StringComparison.CurrentCultureIgnoreCase)); if (!string.IsNullOrWhiteSpace(text)) { string schema = text.ToUpper().Replace("USER ID", string.Empty).Replace("=", string.Empty) .Trim(); modelBuilder.HasDefaultSchema(schema); } break; } } }