Platzi Team
Utilizando base de datos en memoria
El método UseInMemoryDatabase se utiliza para especificar que se debe usar una base de datos en memoria en lugar de una base de datos en disco. Esto puede ser útil para fines de prueba o para aplicaciones con una cantidad limitada de datos que no requieren una base de datos persistente.
builder.Services.AddDbContext<HomeworkContext>(p => p.UseInMemoryDatabase("TareasDB"));
Esta línea de código está agregando un contexto de base de datos al contenedor de servicios en .NET Core utilizando el método AddDbContext del objeto IServiceCollection llamado builder.Services. La clase HomeworkContext es la clase que representa el contexto de la base de datos y se está configurando para usar una base de datos en memoria con el nombre "TareasDB".
Definimos nuestro endpoint
app.MapGet("/dbconexion", async ([FromServices] HomeworkContext dbContext) => { dbContext.Database.EnsureCreated(); return Results.Ok("Base de datos en memoria: " + dbContext.Database.IsInMemory()); });
La ruta se está implementando como una función async que recibe una instancia de la clase HomeworkContext a través del atributo [FromServices].
La función realiza dos acciones:
EnsureCreated en el objeto dbContext.Database. Este método asegura que la base de datos está creada y lista para su uso.dbContext.Database.IsInMemory().Ramiro Xavier Aguirre
Excelente ritmo para todos los niveles de conocimiento de los alumnos. Muy buena explicación!
Brandom Rafael Ledesma Muñoz
Si no te aparece el metodo UseInMemoryDatabase de EFC con NuGet instala Microsoft.EntityFrameworkCore.InMemory
Oscar Fuentes Esteves
En mi caso, se me hace más cómodo usar la extensión para VSCode llamada REST Client. Ya que no salgo del mismo entorno.
Jossie Steeven Quintero Giron
Para los que tienen problemas al ejecutar los certificados:
dotnet dev-certs https --clean dotnet dev-certs https --trust
Sergio Sanc
Gracias, esto funciono!
Juan Rossano
A mi me sigue sin funcionar por credenciales erroneas. Ejecute los dos comandos limpiando el certificado y resintalandolo y lo mismo.
Caffè Latte
Me topé con un error que les puede pasar a la hora de ejecutar la aplicación, en mi caso fue este:
The entity type requires a primary key to be defined
Para solucionarlo recuerden que las clases de los modelos deben ser públicos y las propiedades de las clases deben tener get y set
Raúl Alejandro Chávez Valenzuela
Para los que se toparon con este error pero las key están bien, asegúrense de NO nombrar su clase de tareas como "Task", pues ya existe una clase Task en el sistema. Nómbrenla "MyTask" o "Tarea" para que no haya ambigüedad.
Así me pasó y no marca error en build pero sí truena al hacer GET a "/dbconexion".
Juan Pablo Correa Suarez
lo del compañero raúl chávez me funcionó muchas gracias <3
Luca Cristian Manea
el vscode no encuentra las referencias a System.ComponentModel.DataAnnotations;
como puedo agregar la referencia?
Renzo Orlando De La Cruz Unzueta
Tal vez no has instalado el nugget.
dotnet add package Microsoft.EntityFrameworkCore --version 6.0.5
dotnet add package Microsoft.EntityFrameworkCore.InMemory --version 6.0.5
dotnet add package Microsoft.EntityFrameworkCore.SqlServer --version 6.0.5
Thomas Jeffery
Te paras sobre el error y apretas: CTRL + . Ahi te salen todas las soluciones posibles para tu error. Una vez ahi te tiene que aparecer agregar referencia using de DataAnnotations
Rodrigo Ramos
Y en que clase explicaron la descarga/instalación/uso de POSTMAN?
Otro curso más de Platzi que me encuentro donde explican a su manera lo que quieren, se supone que uno esta tomando esta ruta para que lo lleven de la mano en todos los aspectos
Uno tiene que buscar por su cuenta las lagunas que tienen sus cursos
creo que si es mucho mejor Udemy
Juan Esteban Lopez Parra
muy claro se menciono en los prerrequisitos los conocimientos y herramientas a utilizar.
Si desconoces algo pues por tu cuenta tratas de entender o usar a si sea lo mínimo, ¿o esperas que en el mundo laboral te lleven de la mano cuando no sabes x cosa?
Rodrigo Ramos
Juan respondiendo a tu pregunta aunque sea redundante y obvia: no no se espera eso en el mundo laboral por eso tú, yo y toda la comunidad Platzi pagamos esta suscripción, para APRENDER y tener herramientas. Y justo porque nos tenemos que preparar para el mundo laboral pagamos esta suscripción, para que te enseñen y lleven de la mano, ahora dime tú ¿Para que pagas la suscripción? porque si la pagas para que por tu cuenta y otro medio busques la información faltante mejor ahórrate ese dinero
Byron Melgar
Postman ya tiene una extensión para VS Code https://blog.postman.com/introducing-the-postman-vs-code-extension/ a Mayo 2023 está en Beta pero anda muy bien por ahora.
Nicolas Guillen
Por si no quieres instalar Postman: también lo puedes hacer desde VS Code con una extensión y mil otras formas pero estas son fáciles
Andres Felipe Zuluaga Arcila
Para los que han tenido dudas con expresiones Lambda, les comparto el siguiente link, a mi me ayudó mucho.
Franklin Quispe
No funciona el link
Jose Antonio Diaz Urbano
Alguien sabría decirme por qué me salen estas advertencias y cómo solucionarlo. El programa me funciona sin problema pero es muy molesto tener eso ahí :( Gracias!
 Ej: TuProyectp.csproj, cambia la etiqueta <Nullable> a disabled
Carlos Madrigal Ramos
Esto es porque por defecto viene configurado para que muestre advertencias en propiedades que pueden ser nulas.
Alejandra Suárez
Hola a todos.
Si alguien, al igual que yo tiene problemas con el método UseInMemoryDatabase, problemas relacionados con el no reconocimiento de este método por parte del código, quizás esta solución pueda ser de ayuda:
1. Ejecuten el siguiente comando en la terminal:
dotnet add package Microsoft.EntityFrameworkCore.InMemory
using Microsoft.EntityFrameworkCore;Kenneth David Gaitan Evanks
Una expresión lambda es una forma concisa de crear funciones anónimas (sin nombre). Se usan mucho para escribir código más corto y legible.
Roger Ullilen Echeverria
para los que le sale error considerar este codigo .
app.MapGet("/dbconexion", async ([FromServices] TareasContext dbContext) =>{ await dbContext.Database.EnsureCreatedAsync(); return Results.Ok("Base de datos en memoria" + dbContext.Database.IsInMemory());});
KEVIN A. DERAS
En la función lambda me dice que al no tener un await se ejecutará de forma asíncrona, entonces ¿Por qué la declaramos como async, o donde y en que métodos debería poner el await, pues el EnsureCreated no lo permite? Ojo esto no da error, solo genera una advertencia. Pero tengo la duda de si se ejecutará síncrona ¿por qué declararla como asíncrona?.
Miguel Teheran
ProfesorEl await solo es requerido cuando vas a llamar un método de manera asincrona. en el caso de que no lo sea no es necesario usar el async y el await
Kenet Andrés Chungandro Montenegro
Gustavo Medina Limon
A los que les mando este error en postman: connect ECONNREFUSED Esto se soluciona quitando el Async del MapGet
app.MapGet("/dbconexion", ([FromServicesAttribute] TareasContext dbContext) => { dbContext.Database.EnsureCreated(); return Results.Ok("Base de datos en Memoria: " + dbContext.Database.IsInMemory()); });
Luis Alvarez
using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; using proyectoef.Models; var builder = WebApplication.CreateBuilder(args); // Registrando servicios builder.Services.AddDbContext<TareasContext>(options => options.UseInMemoryDatabase("TareasDB")); var app = builder.Build(); // Definir rutas en controladores o servicios separados app.MapGet("/", () => "Hello World!"); app.MapGet("/dbconexion", async ([FromServices] TareasContext dbContext) => { try { dbContext.Database.EnsureCreated(); return Results.Ok("Base de datos en memoria: " + dbContext.Database.IsInMemory()); } catch (Exception ex) { return Results.BadRequest("Error al conectar a la base de datos: " + ex.Message); } }); app.Run(); ```Esta es una solución: Copiar link directamente de la pagina...   Solucionado: 
Israel Arroyo
Me gustaría entender que es lo que se esta haciendo en la linea 6 y 12 del archivo program.cs :| Hay algún curso que me perdí?
Saludos.