CursosEmpresasBlogLiveConfPrecios

Utilizando base de datos en memoria

Clase 10 de 25 • Curso de Fundamentos de Entity Framework

Clase anteriorSiguiente clase

Contenido del curso

Introducción
  • 1
    Bienvenida y presentación

    Bienvenida y presentación

    01:51
  • 2
    Prerrequisitos

    Prerrequisitos

    03:04
  • 3
    Conexión a base de datos

    Conexión a base de datos

    07:20
  • 4
    ¿Qué es un ORM en programación?

    ¿Qué es un ORM en programación?

    08:51
  • 5
    Introducción a Entity Framework

    Introducción a Entity Framework

    06:53
  • 6
    Creación de proyecto .NET con Entity Framework

    Creación de proyecto .NET con Entity Framework

    11:57
Iniciando con Entity Framework
  • 7
    Creación de modelos

    Creación de modelos

    08:28
  • 8
    Configuración de Entity Framework

    Configuración de Entity Framework

    06:53
  • 9
    Mapeo de modelos usando atributos

    Mapeo de modelos usando atributos

    09:52
  • 10
    Utilizando base de datos en memoria

    Utilizando base de datos en memoria

    10:13
  • 11
    Conectado a base de datos SQL server

    Conectado a base de datos SQL server

    10:53
  • 12
    Agregando conexión al archivo appsettings

    Agregando conexión al archivo appsettings

    07:28
Utilizando Fluent API
  • 13
    Introducción a Fluent API

    Introducción a Fluent API

    03:29
  • 14
    Creando modelo de categoría con Fluent API

    Creando modelo de categoría con Fluent API

    08:30
  • 15
    Creando modelo de tarea con Fluent API

    Creando modelo de tarea con Fluent API

    07:36
  • 16
    Conectado a base de datos con Fluent API

    Conectado a base de datos con Fluent API

    07:42
Migraciones
  • 17
    ¿Qué son las migraciones?

    ¿Qué son las migraciones?

    03:14
  • 18
    Inicializar las migraciones

    Inicializar las migraciones

    11:27
  • 19
    Creando una migración

    Creando una migración

    07:18
  • 20
    Agregando datos semilla

    Agregando datos semilla

    16:31
Consumo de datos
  • 21
    Obteniendo datos con Entity Framework

    Obteniendo datos con Entity Framework

    11:31
  • 22
    Guardando datos con Entity framework

    Guardando datos con Entity framework

    09:07
  • 23
    Actualizando datos con Entity framework

    Actualizando datos con Entity framework

    10:17
  • 24
    Eliminando datos con Entity framework

    Eliminando datos con Entity framework

    07:59
Cierre del curso
  • 25
    Continúa tu camino desarrollando

    Continúa tu camino desarrollando

    01:45
    Platzi Team

    Platzi Team

    student•
    hace 3 años

    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:

    1. Llamada al método EnsureCreated en el objeto dbContext.Database. Este método asegura que la base de datos está creada y lista para su uso.
    2. Devolución de una respuesta HTTP 200 OK con un mensaje que indica si la base de datos es una base de datos en memoria o no. Esto se logra mediante la llamada a dbContext.Database.IsInMemory().
    Ramiro Xavier Aguirre

    Ramiro Xavier Aguirre

    student•
    hace 4 años

    Excelente ritmo para todos los niveles de conocimiento de los alumnos. Muy buena explicación!

    Brandom Rafael Ledesma Muñoz

    Brandom Rafael Ledesma Muñoz

    student•
    hace 3 años

    Si no te aparece el metodo UseInMemoryDatabase de EFC con NuGet instala Microsoft.EntityFrameworkCore.InMemory

    Oscar Fuentes Esteves

    Oscar Fuentes Esteves

    student•
    hace 3 años

    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

    Jossie Steeven Quintero Giron

    student•
    hace 3 años

    Para los que tienen problemas al ejecutar los certificados:

    dotnet dev-certs https --clean dotnet dev-certs https --trust
      Sergio Sanchez

      Sergio Sanchez

      student•
      hace 3 años

      Gracias, esto funciono!

      Juan Rossano

      Juan Rossano

      student•
      hace 2 años

      A mi me sigue sin funcionar por credenciales erroneas. Ejecute los dos comandos limpiando el certificado y resintalandolo y lo mismo.

    Caffè Latte

    Caffè Latte

    student•
    hace 3 años

    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

      Raúl Alejandro Chávez Valenzuela

      student•
      hace un año

      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

      Juan Pablo Correa Suarez

      student•
      hace un año

      lo del compañero raúl chávez me funcionó muchas gracias <3

    Luca Cristian Manea

    Luca Cristian Manea

    student•
    hace 4 años

    el vscode no encuentra las referencias a System.ComponentModel.DataAnnotations;

    como puedo agregar la referencia?

      Renzo Orlando De La Cruz Unzueta

      Renzo Orlando De La Cruz Unzueta

      student•
      hace 4 años

      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

      Thomas Jeffery

      student•
      hace 3 años

      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

    Rodrigo Ramos

    student•
    hace un año

    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

      Juan Esteban Lopez Parra

      student•
      hace 3 meses

      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

      Rodrigo Ramos

      student•
      hace 2 meses

      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

    Byron Melgar

    student•
    hace 3 años

    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

    Nicolas Guillen

    student•
    hace 2 años

    Por si no quieres instalar Postman: https://hoppscotch.io/ 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

    Andres Felipe Zuluaga Arcila

    student•
    hace 3 años

    Para los que han tenido dudas con expresiones Lambda, les comparto el siguiente link, a mi me ayudó mucho.

    https://learn.microsoft.com/es-es/dotnet/csharp/language-reference/operators/lambda-expressions

      Franklin Quispe

      Franklin Quispe

      student•
      hace 2 años

      No funciona el link

    Jose Antonio Diaz Urbano

    Jose Antonio Diaz Urbano

    student•
    hace 3 años

    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!

    ![](

    295f3051f694b9d0a232fcb6141906c9.png

      Carlos Madrigal Ramos

      Carlos Madrigal Ramos

      student•
      hace 3 años

      Entra al Archivo (csproj de tu proyecto) Ej: TuProyectp.csproj, cambia la etiqueta <Nullable> a disabled

      Carlos Madrigal Ramos

      Carlos Madrigal Ramos

      student•
      hace 3 años

      Esto es porque por defecto viene configurado para que muestre advertencias en propiedades que pueden ser nulas.

    Roger Ullilen Echeverria

    Roger Ullilen Echeverria

    student•
    hace un año

    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

    KEVIN A. DERAS

    student•
    hace 3 años

    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

      Miguel Teheran

      teacher•
      hace 3 años

      El 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

    Kenet Andrés Chungandro Montenegro

    student•
    hace 2 años
    Gustavo Medina Limon

    Gustavo Medina Limon

    student•
    hace 2 años

    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

    Luis Alvarez

    student•
    hace 2 años
    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...&#x20; ![](https://static.platzi.com/media/user_upload/image-31b7cf7f-af63-4429-9c84-add84d4bd2d5.jpg)![](https://static.platzi.com/media/user_upload/image-fd25c2cd-2d70-4c7e-992c-16cbdcd9e34a.jpg) Solucionado: ![](https://static.platzi.com/media/user_upload/image-df2d0667-b87d-4da1-999d-46e0bfabbaa6.jpg)
    Israel Arroyo

    Israel Arroyo

    student•
    hace 2 años

    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.

    Kenneth David Gaitan Evanks

    Kenneth David Gaitan Evanks

    student•
    hace un mes

    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.

    Sebastian Carrillo Calderon

    Sebastian Carrillo Calderon

    student•
    hace un año

    que extensiones utilizan para visual code ?

Escuelas

  • Desarrollo Web
    • Fundamentos del Desarrollo Web Profesional
    • Diseño y Desarrollo Frontend
    • Desarrollo Frontend con JavaScript
    • Desarrollo Frontend con Vue.js
    • Desarrollo Frontend con Angular
    • Desarrollo Frontend con React.js
    • Desarrollo Backend con Node.js
    • Desarrollo Backend con Python
    • Desarrollo Backend con Java
    • Desarrollo Backend con PHP
    • Desarrollo Backend con Ruby
    • Bases de Datos para Web
    • Seguridad Web & API
    • Testing Automatizado y QA para Web
    • Arquitecturas Web Modernas y Escalabilidad
    • DevOps y Cloud para Desarrolladores Web
  • English Academy
    • Inglés Básico A1
    • Inglés Básico A2
    • Inglés Intermedio B1
    • Inglés Intermedio Alto B2
    • Inglés Avanzado C1
    • Inglés para Propósitos Específicos
    • Inglés de Negocios
  • Marketing Digital
    • Fundamentos de Marketing Digital
    • Marketing de Contenidos y Redacción Persuasiva
    • SEO y Posicionamiento Web
    • Social Media Marketing y Community Management
    • Publicidad Digital y Paid Media
    • Analítica Digital y Optimización (CRO)
    • Estrategia de Marketing y Growth
    • Marketing de Marca y Comunicación Estratégica
    • Marketing para E-commerce
    • Marketing B2B
    • Inteligencia Artificial Aplicada al Marketing
    • Automatización del Marketing
    • Marca Personal y Marketing Freelance
    • Ventas y Experiencia del Cliente
    • Creación de Contenido para Redes Sociales
  • Inteligencia Artificial y Data Science
    • Fundamentos de Data Science y AI
    • Análisis y Visualización de Datos
    • Machine Learning y Deep Learning
    • Data Engineer
    • Inteligencia Artificial para la Productividad
    • Desarrollo de Aplicaciones con IA
    • AI Software Engineer
  • Ciberseguridad
    • Fundamentos de Ciberseguridad
    • Hacking Ético y Pentesting (Red Team)
    • Análisis de Malware e Ingeniería Forense
    • Seguridad Defensiva y Cumplimiento (Blue Team)
    • Ciberseguridad Estratégica
  • Liderazgo y Habilidades Blandas
    • Fundamentos de Habilidades Profesionales
    • Liderazgo y Gestión de Equipos
    • Comunicación Avanzada y Oratoria
    • Negociación y Resolución de Conflictos
    • Inteligencia Emocional y Autogestión
    • Productividad y Herramientas Digitales
    • Gestión de Proyectos y Metodologías Ágiles
    • Desarrollo de Carrera y Marca Personal
    • Diversidad, Inclusión y Entorno Laboral Saludable
    • Filosofía y Estrategia para Líderes
  • Diseño de Producto y UX
    • Fundamentos de Diseño UX/UI
    • Investigación de Usuarios (UX Research)
    • Arquitectura de Información y Usabilidad
    • Diseño de Interfaces y Prototipado (UI Design)
    • Sistemas de Diseño y DesignOps
    • Redacción UX (UX Writing)
    • Creatividad e Innovación en Diseño
    • Diseño Accesible e Inclusivo
    • Diseño Asistido por Inteligencia Artificial
    • Gestión de Producto y Liderazgo en Diseño
    • Diseño de Interacciones Emergentes (VUI/VR)
    • Desarrollo Web para Diseñadores
    • Diseño y Prototipado No-Code
  • Contenido Audiovisual
    • Fundamentos de Producción Audiovisual
    • Producción de Video para Plataformas Digitales
    • Producción de Audio y Podcast
    • Fotografía y Diseño Gráfico para Contenido Digital
    • Motion Graphics y Animación
    • Contenido Interactivo y Realidad Aumentada
    • Estrategia, Marketing y Monetización de Contenidos
  • Desarrollo Móvil
    • Fundamentos de Desarrollo Móvil
    • Desarrollo Nativo Android con Kotlin
    • Desarrollo Nativo iOS con Swift
    • Desarrollo Multiplataforma con React Native
    • Desarrollo Multiplataforma con Flutter
    • Arquitectura y Patrones de Diseño Móvil
    • Integración de APIs y Persistencia Móvil
    • Testing y Despliegue en Móvil
    • Diseño UX/UI para Móviles
  • Diseño Gráfico y Arte Digital
    • Fundamentos del Diseño Gráfico y Digital
    • Diseño de Identidad Visual y Branding
    • Ilustración Digital y Arte Conceptual
    • Diseño Editorial y de Empaques
    • Motion Graphics y Animación 3D
    • Diseño Gráfico Asistido por Inteligencia Artificial
    • Creatividad e Innovación en Diseño
  • Programación
    • Fundamentos de Programación e Ingeniería de Software
    • Herramientas de IA para el trabajo
    • Matemáticas para Programación
    • Programación con Python
    • Programación con JavaScript
    • Programación con TypeScript
    • Programación Orientada a Objetos con Java
    • Desarrollo con C# y .NET
    • Programación con PHP
    • Programación con Go y Rust
    • Programación Móvil con Swift y Kotlin
    • Programación con C y C++
    • Administración Básica de Servidores Linux
  • Negocios
    • Fundamentos de Negocios y Emprendimiento
    • Estrategia y Crecimiento Empresarial
    • Finanzas Personales y Corporativas
    • Inversión en Mercados Financieros
    • Ventas, CRM y Experiencia del Cliente
    • Operaciones, Logística y E-commerce
    • Gestión de Proyectos y Metodologías Ágiles
    • Aspectos Legales y Cumplimiento
    • Habilidades Directivas y Crecimiento Profesional
    • Diversidad e Inclusión en el Entorno Laboral
    • Herramientas Digitales y Automatización para Negocios
  • Blockchain y Web3
    • Fundamentos de Blockchain y Web3
    • Desarrollo de Smart Contracts y dApps
    • Finanzas Descentralizadas (DeFi)
    • NFTs y Economía de Creadores
    • Seguridad Blockchain
    • Ecosistemas Blockchain Alternativos (No-EVM)
    • Producto, Marketing y Legal en Web3
  • Recursos Humanos
    • Fundamentos y Cultura Organizacional en RRHH
    • Atracción y Selección de Talento
    • Cultura y Employee Experience
    • Gestión y Desarrollo de Talento
    • Desarrollo y Evaluación de Liderazgo
    • Diversidad, Equidad e Inclusión
    • AI y Automatización en Recursos Humanos
    • Tecnología y Automatización en RRHH
  • Finanzas e Inversiones
    • Fundamentos de Finanzas Personales y Corporativas
    • Análisis y Valoración Financiera
    • Inversión y Mercados de Capitales
    • Finanzas Descentralizadas (DeFi) y Criptoactivos
    • Finanzas y Estrategia para Startups
    • Inteligencia Artificial Aplicada a Finanzas
    • Domina Excel
    • Financial Analyst
    • Conseguir trabajo en Finanzas e Inversiones
  • Startups
    • Fundamentos y Validación de Ideas
    • Estrategia de Negocio y Product-Market Fit
    • Desarrollo de Producto y Operaciones Lean
    • Finanzas, Legal y Fundraising
    • Marketing, Ventas y Growth para Startups
    • Cultura, Talento y Liderazgo
    • Finanzas y Operaciones en Ecommerce
    • Startups Web3 y Blockchain
    • Startups con Impacto Social
    • Expansión y Ecosistema Startup
  • Cloud Computing y DevOps
    • Fundamentos de Cloud y DevOps
    • Administración de Servidores Linux
    • Contenerización y Orquestación
    • Infraestructura como Código (IaC) y CI/CD
    • Amazon Web Services
    • Microsoft Azure
    • Serverless y Observabilidad
    • Certificaciones Cloud (Preparación)
    • Plataforma Cloud GCP

Platzi y comunidad

  • Platzi Business
  • Live Classes
  • Lanzamientos
  • Executive Program
  • Trabaja con nosotros
  • Podcast

Recursos

  • Manual de Marca

Soporte

  • Preguntas Frecuentes
  • Contáctanos

Legal

  • Términos y Condiciones
  • Privacidad
  • Tyc promociones
Reconocimientos
Reconocimientos
Logo reconocimientoTop 40 Mejores EdTech del mundo · 2024
Logo reconocimientoPrimera Startup Latina admitida en YC · 2014
Logo reconocimientoPrimera Startup EdTech · 2018
Logo reconocimientoCEO Ganador Medalla por la Educación T4 & HP · 2024
Logo reconocimientoCEO Mejor Emprendedor del año · 2024
De LATAM conpara el mundo
YoutubeInstagramLinkedInTikTokFacebookX (Twitter)Threads