private Mensaje creaConexionSQLServer(ConnectionDB connexion, string query, TipoResultado tipoResultado) { List <object> resultado = new List <object>(); ////SqlTransaction sqlTrans = null; inicializaVariableMensaje(); try { //Code 12630 //(SqlConnection)dbContext.Database.Connection ///new SqlConnection(dbContext.Database.Connection.ConnectionString) using (SqlConnection conn = (SqlConnection)EntityFrameworkCxn.createDbConnection(connexion)) { conn.Open(); //sqlTrans = conn.BeginTransaction(); SqlCommand command = new SqlCommand(query, conn); //, sqlTrans foreach (var item in generadorQueries.valoresParametrosQuery) { command.Parameters.Add(new SqlParameter(item.Key, item.Value)); } object instancia = null; object[] valores; using (SqlDataReader reader = command.ExecuteReader()) { int cont = 0, columnas = reader.FieldCount; while (reader.Read()) { valores = new object[generadorQueries.tipoDatosSelect.Count]; foreach (var item in generadorQueries.tipoDatosSelect) { instancia = generaInstanciaValores(reader, item, cont); valores[cont] = instancia; cont++; Console.WriteLine(instancia); } resultado.Add(valores); cont = 0; } } } // sqlTrans.Commit(); mensajeResultado.noError = 0; mensajeResultado.error = ""; if (tipoResultado == TipoResultado.Unico) { if (resultado.Count > 0) { if (generadorQueries.tipoDatosSelect.Count == 1) { object[] valor = (object[])resultado[0]; mensajeResultado.resultado = valor[0]; } else { mensajeResultado.resultado = resultado[0]; } return(mensajeResultado); } else { mensajeResultado.resultado = null; } } else { mensajeResultado.resultado = resultado; } } catch (Exception ex) { //if (sqlTrans != null) //{ // sqlTrans.Rollback(); //} System.Diagnostics.Debug.WriteLine(concatena.Remove(0, concatena.Length).Append(msgError).Append("creaConexionSQLServer()1_Error: ").Append(ex)); mensajeResultado.noError = ControlErroresEntity.buscaNoErrorPorExcepcion(ex); mensajeResultado.error = ex.GetBaseException().ToString(); mensajeResultado.resultado = null; } return(mensajeResultado); }
public static ISessionFactory createSessionFactorie(ConnectionDB conexion = null, int tipoDb = -1) { var cfg = new Configuration(); String server = conexion == null ? "" : conexion.server; String database = conexion == null ? "" : conexion.nombreBd; String user = conexion == null ? "" : conexion.usuario; String pass = conexion == null ? "" : conexion.password; String port = conexion == null ? "" : conexion.puertoServer; String cxn = null; if (conexion.tipoServer == TypeDB.SQLServer)//SQLServer { cfg.DataBaseIntegration(x => { cxn = "Server=" + server + ";" + "Database=" + database + ";" + "Uid=" + user + ";" + "Pwd=" + pass + ";"; x.ConnectionString = cxn; x.Dialect <MsSql2012Dialect>(); x.LogSqlInConsole = true; x.BatchSize = 30; }); // cfg.SetProperty(NHibernate.Cfg.Environment.DefaultSchema, "dbo"); } if (conexion.tipoServer == TypeDB.MySQL) { cfg.DataBaseIntegration(x => { cxn = "Server=" + server + ";" + "Port=" + port + ";" + "database=" + database + ";" + "user="******";" + "password="******";" /*+ "sslmode=" + "none" + ";"*/; x.ConnectionString = cxn; x.Dialect <MySQL5Dialect>(); x.LogSqlInConsole = true; x.BatchSize = 30; }); } cfg.SetProperty("current_session_context_class", "web"); //Create or update for first | validate for Production if (conexion == null) { /* cfg.AddFile(HttpContext.Current.Server.MapPath(@"~\mapeos\ServidoresBd.hbm.xml"));*/ } if (tipoDb == 1) { //Master /*Options: create, update, validate*/ cfg.SetProperty("hbm2ddl.auto", "validate"); Hibernate.HBClass.AddAssemblyMaster(cfg); } else if (tipoDb == 2) { //Simple /*Options: create, update, validate*/ cfg.SetProperty("hbm2ddl.auto", "validate"); Hibernate.HBClass.AddAssemblySimple(cfg); } else if (tipoDb == 3) { //DBLogin /*Options: create, update, validate*/ cfg.SetProperty("hbm2ddl.auto", "validate"); Hibernate.HBClass.AddAssemblyLogin(cfg); } var sefact = createFactory(cfg, cxn); return(sefact); }