¿Cómo utilizar Entity Framework con 2 o más bases de datos distintas?, C# .Net Visual Studio

En este video te mostrare como puedes utilizar Entity Framework con 2 o más bases de datos, sin importar si son de distinto motor o distinto servidor, al igual que te mostrare la problemática que te puede ocasionar y como debes actuar.

Curso de MVC .Net

Este es un curso gratuito en el que te enseño como desarrollar sistemas web en MVC .Net. Al finalizar los 6 videos seras capaz de hacer sistemas en esta tecnología y a parte la comprenderás en su totalidad.

 

Curso de MVC .Net C# Entity Framework, autentificación #2

En este segundo video veremos cómo agregar Entity Framework a nuestro proyecto MVC .Net, ademas explicare puntos clave para evitar problemas a futuro, te ahorrare horas de stackoverfow.

Primer video del curso: https://www.youtube.com/watch?v=UZNoQMio4XM

¿Cómo insertar miles de registros con Entity Framework? C# .Net

En el siguiente video te explico una manera correcta de insertar miles de registros utilizando Entity Framework.

Aprende Entity Framework en 10 minutos


int numeroLotes = 1000;

using (var db = new pruebaEntities())
{
      for (int i = 0; i < 4000; i++)
      {
           var oNumber = new numbers();
           oNumber.number = i;
           oNumber.date = DateTime.Now;

           db.numbers.Add(oNumber);

           if(i%numeroLotes==0)
                 db.SaveChanges();

           }

           db.SaveChanges();
       }
}

¿Cómo utilizar transacciones con Entity Framework? C# .Net

Las transacciones son útiles cuando hablamos de base de datos y debemos hacer muchas consultas en conjunto, ya que nos permiten realizar un retroceso en la manipulación de datos si una de las consultas del conjunto falla.

Con Entity Framework es posible realizar transacciones, y no solo eso, sino que podemos tener el poder de realizar otras funciones distintas a manipulación de datos y decidir si fallan estas otras funciones aplicar un rollback.

A continuación te mostrare con un pequeño ejemplo.

Teniendo nuestro Entity Framework con el nombre MiEntity:


//creamos nuestro contexto
 using (var db = new MiEntity())
{
                //creamos el ámbito de la transacción
                using (var dbContextTransaction = db.Database.BeginTransaction())
                {
                    try
                    {
                        //una consulta
                        tabla oTabla = new tabla();
                        oTabla.campo="pato";

			//agregamos el elemento
                        db.tabla.Add(oTabla);

			//otra consulta
                        tabla2 oTabla2 = new tabla2();
                        oTabla2.campo="pato";

			//agregamos otro elemento
                        db.tabla2.Add(oTabla2);

			//guardamos en la base de datos
                        db.SaveChanges();

                        //hacemos algo extra a manipulación de datos
			//como enviar un mail, suponiendo que regresa true si es exitoso
                        if (!EnviaUnMail())
                        {
                            //hacemos rollback si fallo el envio del mail
                            dbContextTransaction.Rollback();
                        }

                        //Hacemos commit de todos los datos
                        dbContextTransaction.Commit();

                    }
                    catch (Exception ex)
                    {
                        //hacemos rollback si hay excepción
                        dbContextTransaction.Rollback();

                    }
                }
} 

¿Cómo ejecutar una consulta SQL directa utilizando entity framework?

Es curioso para mi hacer esta entrada ya que cuando utilizamos un ORM de alguna manera casí nunca es necesario hacer consultas Sql para obtener o modificar datos de la base de datos, pero algunas veces nos es más fácil hacer la consulta ya sea por comodidad o ya sea un caso muy especial. Para no recurrir al famoso SqlCommand y sus derivados Entity Framework nos permite realizar una consulta en crudo de la siguiente manera:


//creamos nuestro objeto context
NuestroEntitie db= new NuestroEntitie();

//ExecuteSQLCommand invoca la consulta capturada
db.Database.ExecuteSqlCommand("update tabla set campo=1 where id>1000 and fecha>getdate()");