Aún no tienes acceso a esta clase

Crea una cuenta y continúa viendo este curso

Curso de ASP.NET Core

Curso de ASP.NET Core

Juan Carlos Ruiz

Juan Carlos Ruiz

Sembrando datos en la base de datos

19/35
Recursos

Aportes 30

Preguntas 4

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

quizas alguien no alcanzo a ver el try, catch

try
            {
                var context = services.GetRequiredService<EscuelaContext>();
                context.Database.EnsureCreated();
            }
            catch (Exception ex)
            {
                var logger = services.GetRequiredService<ILogger<Program>>();
                logger.LogError(ex, "Ocurrio un error");
            }```

si usamos DataAnnotations no es necesario renombrar los UniqueId solo lo marcamos como llave

El curso mas flojo de los que veo hasta ahora. Siendo tan usado C# crei que el curso podria ser mas serio.

Esperando la version 2019

Para mis compañeros que esten tomando recien este curso el archivo Programs.cs y StartUp.cs son lo mismo en la version mas reciente de Net Core. y la forma de la configuracion hasta el momento del curso es la siguiente sin errores a la fecha,

using NetCoreMVC.Models;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.EntityFrameworkCore;

var builder = WebApplication.CreateBuilder(args);

// Add services to the container.
builder.Services.AddControllersWithViews();

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


var app = builder.Build();

using(var scope=app.Services.CreateScope()){
    var serv=scope.ServiceProvider;
    try
    {
        var contex=serv.GetRequiredService<EscuelaContext>();
        contex.Database.EnsureCreated();
    }
    catch (System.Exception)
    {
        throw;
    }

}

// Configure the HTTP request pipeline.
if (!app.Environment.IsDevelopment())
{
    app.UseExceptionHandler("/Home/Error");
    // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
    app.UseHsts();
}

app.UseHttpsRedirection();
app.UseStaticFiles();

app.UseRouting();

app.UseAuthorization();

app.MapControllerRoute(
    name: "default",
    pattern: "{controller=Alumno}/{action=Index}/{id?}");

app.Run();

Muy enredado este curso, se centra en boludeces. Que inversion mas fea dios mio.

Creo que cuando el profesor hizo la parte de MultiAsignatura se le olvidó poner que el AsignaturaController usara la base de datos en vez de asignarlos directamente. (O si sí lo hizo en el controlador, no lo vi)

Para hacer esa parte y probar que funcionara, yo lo hice de esta manera:

  • Agregué el Contexto al controlador de Asignatura
private SchoolContext _context;

public StudentController(SchoolContext context)
        {
            _context = context;
        }
  • Pasé los datos del Contexto como una Lista hacia la vista (porque recordemos que el contexto los recibe como un Array y la vista nos pide que le enviemos una Lista de los objetos)
public IActionResult MultiStudent()
{            
     var StudentList = _context.Students.ToList();
     ViewBag.Time = DateTime.Now;
     return View(StudentList);
}

Para evitar ese problema de Id en Asignatura y en cualquier otra clase, se puede definir el Id en el constructor de ObjetoEscuelaBase.

Este es el video que se me ha complicado más del curso

Debe estar programando para el mismo que lo hace tan rapido …

Me gustan las clases pero lo que si pienso que puede mejorar es que antes de la practica nos enseñen las nuevas instrucciones a detalle(como el using dentro del método ) y evitar tantas correcciones en el código

Código del Programa Principal

 public static void Main(string[] args)
        {
            // CreateWebHostBuilder(args).Build().Run();

            var host = CreateWebHostBuilder(args).Build();

            using ( var scope = host.Services.CreateScope() )
            {
                var services = scope.ServiceProvider;

                try 
                {
                    var context = services.GetRequiredService<EscuelaContext>();
                    context.Database.EnsureCreated();
                }
                catch (Exception ex)
                {
                    var logger = services.GetRequiredService<ILogger<Program>>();
                    logger.LogError(ex, "An error ocurred creating DB");
                }
            }
            host.Run();            
        }

Creo que el curso debe mejorar, aveces siento que mas que una clase es el video de alguien codeando como si no hubiese un mañana.
Es mi humilde opinión y no es mi intención causar molestias :'c

Veo el codigo con el que se asegura que la base de datos este creada, y me parece mas rapido y simple, configurar una BD SQL en vez de la de InMemory y llenar los datos a mano desde el manager de SQL o hacerle un CRUD rapido al controller.

3 horas para entender esta clase 😃

Valla, es la primera vez que siento que el curso si va mal, entre copiar fragmentos de código y demás.

El curso es bueno comparto la parte de que tal vez es algo rápido pero en el reproductor se le puede bajar la velocidad o por ultimo ponerle pausa para entender mejor parte por parte, por otro lado tal vez muchos esperaban un temario mas avanzado pero a mi parecer el mismo docente a recalcado que solo lo esta haciendo de manera superficial porque para profundizar en cada tema es bastante amplio y equivaldría a hacer un curso nuevo para explicarlo adecuadamente . . .

Alguien ha tenido el mismo problema que le genera en Id, pero con AñoDeCreación?

‘The seed entity for entity type ‘Escuela’ cannot be added because there was no value provided for the required property ‘AñoDeCreación’.’

No estaría encontrando el error, muchas gracias.

Si subrayas algo y le das Ctrl + R + R se reemplazara en toda la solucion incluyendo comentarios si deseas.

No caigan en la incertidumbre, en el siguiente vídeo explica más lo que hicimos

a chis minuto 03:35 de donde caray… saca esa lista de asignaturas

aun no entiendo como estos lenguajes son los mejores y los hacen tan complicados de usar, no es para nada intuitivo, esta conexión no lo hubiese logrado nunca por cuenta propia.
y lo peor es que aun no la entiendo del todo

Buena Clase

que otras estrategias existen para mejorar mi web server cuando tienen muchas instancias en ejecución al mismo tiempo??, siguiendo el ejemplo del usign(var Scope=host.Services.CreateScope()){}

Buena Explicación, a la hora de sembrar los datos

En vez de iniciar el ID en todos lados conviene en el constructor de ObjetoEscuelaBase iniciar el ID.

public ObjetoEscuelaBase()
        {
           Id = Guid.NewGuid().ToString();
        }

Buena explicación.

No hay caso con el HasData xD no me lo toma

Excelente información, acerca de las llaves primarias, la convención es que se debe de usar Id o el NombreClaseId

A mi me sale el problema del Id en mi “CategoryModel” que equivale al “Asignaturas” que tienes ahí.

Sinceramente, comparto con la opinión de los demás, esto parece un curso hecho para el profesor que para los que estamos supuestamente aprendiendo. Hace el curso como si estuviera corriendo, como si se tuviera que ir, la explicación es muy vaga, pone muchas cosas que no se entienden y mucho copy & paste. Simplemente para gente que está comenzando, no lo recomiendo.

Yo medio pude entender esto, gracias a un curso que vi de Laravel en otra web (una dedicada a php) y en ese curso se veía esto de “Seeds” de datos, y nada más por ese curso, puedo si acaso relacionarlo con este tema… Y aún así ni siquiera era tan caótico como es esto…

Me sentí mal cuando no entendí muchas cosas… hasta que leí los comentarios.