No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Aprende Inglés, Desarrollo Web, AI, Ciberseguridad y mucho más.

Antes: $249

Currency
$209
Comienza ahora

Termina en:

2 Días
8 Hrs
33 Min
29 Seg
Curso de ASP.NET Core

Curso de ASP.NET Core

Juan Carlos Ruiz

Juan Carlos Ruiz

Conectando la solución con Entity Framework Core

18/35
Recursos

Aportes 29

Preguntas 3

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

todas las cosas que el profesor dice y no le entendamos lo podemos buscar en microsoft directamente, es cierto que para que le entendamos mejor, hubiera sido genial que explicara todo mas detalladamente, pero tambien a manera de un mejor aprendizaje el investigar hace que te metas mas en el contexto de lo que estamos haciendo, les dejo el link de un tutorial para una aplicacion en ASP.NET MVC 5 que usa Entity Framework 6 y se explica de una manera un tanto mas simple lo que aqui nos enseña el profesor

https://docs.microsoft.com/es-es/aspnet/mvc/overview/getting-started/getting-started-with-ef-using-mvc/creating-an-entity-framework-data-model-for-an-asp-net-mvc-application

En el minuto 6, el profesor nos pide agregar un servicio al archivo Startup.cs, sin embargo este archivo y Program.cs son el mismo en la versión de .NET 6 (utilizando Visual Studio 2022), solamente tendremos que agregar la siguiente linea:

builder.Services.AddDbContext<EscuelaContext>(options => options.UseInMemoryDatabase("testDB"));

Esto antes de construir el WebApplication

var app = builder.Build();

A veces este prpofesor desespera, baja, supe pone infiere cosas que cree que ya se sabe uno

Entendí esta parte, pero porque ví primero el curso de entity framework y el curso de api rest, porque si no, sería una descarga de conceptos que Miguel Teheran explica en 2 cursos completos.

Este curso necesita actualizarce lo antes posible. Para quienes estamos aprendiendo será mas complejo cada vez adaptar el código a una versión mas reciente.

Complejo pero ya pude levantar el proyecto del man en .net Core 3

al crear el DBcontext y agregar en los servicios y usarlo en los controladores estas aplicando la inyección por dependencia?

Como experimento. Estoy trabajando el proyecto en VS Community 2019 y a los comandos, le tuve que adicionar la versión net que estoy trabajando: dotnet add package Microsoft.EntityFrameworkCore.InMemory -v 5.0 y dotnet add package Microsoft.EntityFrameworkCore.SqlServer -v 5.0

Saludos, cuando se quiere trabajar con dos bases de datos Desarrollo y producción eso a donde se configura o que practica se utiliza.

Llevo 2 meses. Y aun no aprendo nada de nada.
Puras vueltas y vueltas y no veo nada concreto. Hasta me quedo dormido. Todos los cursos antiguos.
Pierdo mucho tiempo viendo porque no me funcionan las cosas. Que frustrante.

Pregunta, dentro de DbSet, se hace referencia a la carpeta de Vista o al Modelo ???

¿a alguien más le molesta que diga cosas como “a la final”, “les dije inyección o no sé qué cosas”?

En la version actual de la plantilla ya ni siquiera existe el archivo StartUp.cs lo cual desfasaria el curso por ser imposible de seghuir a partirde aqui.
Sin embargo la solucion nos la da un cruso anterior solo hay que agregar el servicio en el archivo Program.cs de esta manera :

// Add services to the container.
builder.Services.AddControllersWithViews();
builder.Services.AddDbContext<EscuelaContext>(p => p.UseInMemoryDatabase("testDB"));

Me parece que es porque la versión del curso no está actualizada pero en mi caso la creación de la variable “EscuelaContext” si se crea en el constructor pero el que viene por default:

    public ClinicaController(ILogger<ClinicaController> logger, ExpedienteContext dbContext) {

        _logger = logger;
        _dbContext = dbContext;
    }

Y así, en la acción que corresponda a sus proyectos es donde se toma esta variable:

    public IActionResult Empresa() {
        var empresas = new List<Empresa>(); //Crea la lista que contendrá los resultados.
        empresas = _dbContext.Empresas.ToList<Empresa>(); //Consulta las empresas y las asigna a la lista.
        return View(empresas); //Envía la lista a la vista.
    }

Super chevere para hacer uso de la BD en memoria excelente

todo una configuración para crear la BD pero al final se ven los resultados muy interesantes.

usar la siguiente nomenclatura para las variables privadas ¿es convención?

private EscuelaContext _context;

Lo he visto como tema de discusión entre el equipo de trabajo, ya que en algunos proyectos con C# nos hemos encontrado con ello.c

No sabia del uso de la base de datos en memoria, parece interesante su aplicación ya que nos ayudará a disminuir el tiempo de desarrollo.

Un Monton de malas prácticas y desorganización en ese proyecto…

private EscuelaContext _context;
public EscuelaController(EscuelaContext context){
    _context = context;
}
public IActionResult Index()
{
    var escuela = _context.Escuelas.FirstOrDefault(); 
    return View(escuela);
}

me aburrió el profé. Trato de seguirle el hilo y me frustro.

Muy buen a clase!!

😒

🤯

Habla muy rapidooo 😦

Context es una clase abstracta?

<Se produjo una excepción de tipo 'System.InvalidOperationException' en System.Private.CoreLib.dll pero no se controló en el código del usuario: 'Unable to determine the relationship represented by navigation property 'Alumno.evaluaciones' of type 'List<Evaluacion>'. Either manually configure the relationship, or ignore this property using the '[NotMapped]' attribute or by using 'EntityTypeBuilder.Ignore' in 'OnModelCreating'.'> alguien tiene este error?

interesante

La plantilla de proyecto que me creo es basada en Net Core 3.0, no pude replicar esta conexión a una BD en memoria.
Hice el intento de realizar una conexión a una instancia local de SQL, estaba tratando de listar una escuela, en ambos casos obtuve un error relacionado a los siguiente:

Se produjo una excepción de tipo 'System.InvalidOperationException' en Microsoft.EntityFrameworkCore.dll pero no se controló en el código del usuario: 'The entity type 'Alumno' requires a primary key to be defined. If you intended to use a keyless entity type call 'HasNoKey()'.'