Preguntas y respuestas de programación #10, SQL vs NOSQL, Soap vs Rest, Blazor vs Angular

Contestando preguntas y respuestas sobre programación.

¿SQL vs NOSQL?
¿Blazor vs Angular?
¿Transacciones en código o en base de datos?
¿Modelos de inteligencia artificial en Ionic?
¿Cómo aplicar la inteligencia artificial?
¿Wcf vs Rest?
¿Adsense en IONIC?
¿Signalr o websockets?

¿Cómo crear un módulo Maestro Detalle en C# MVC Api .Net Framework?

En este video te explicare como hacer un Web Service el cual reciba un objeto json del tipo maestro detalle y el cual se inserte a una base de datos con la ayuda de Entity Framework.

Descargar código fuente

¿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();

                    }
                }
}