No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

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 34

Preguntas 5

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

o inicia sesi贸n.

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

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

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

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

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

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

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);
}

3 horas para entender esta clase 馃槂

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

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

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.

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

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

Obviando que este curso necesita actualizarse. Hay una secuencia o dependencia de esta clase y el curo en general con otros cursos previos en los que se explica mas a fondo y con detalle lo que se explica.

Incluso hay una escuela o ruta de aprendizaje para llegar a este punto, los que no entiendan es casi seguro porque se brincaron esos pasos.

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

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?

鈥楾he seed entity for entity type 鈥楨scuela鈥 cannot be added because there was no value provided for the required property 鈥楢帽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.

Qu茅 curso tan enredado鈥

Me sent铆 mal cuando no entend铆 muchas cosas鈥 hasta que le铆 los comentarios.

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

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

A mi me estaba dando el error, aparte de que les asigne los Ids que tenia

InvalidOperationException: Unable to determine the relationship represented by navigation property 鈥楢lumnoModel.EvaluacionesModel鈥 of type 鈥楲ist<EvaluacionModel>鈥. Either manually configure the relationship, or ignore this property using the 鈥榌NotMapped]鈥 attribute or by using 鈥楨ntityTypeBuilder.Ignore鈥 in 鈥極nModelCreating鈥.

Y la forma que encontr茅 para solucionarlo fue agregando un Id a la clase evaluaci贸n de la siguiente manera esto en netCore 7

public class Evaluacion
    {
        [Key]
        public int Id { get; set; }
        public Alumno? Alumno { get; set; }
        public Asignatura? Asignatura { get; set; }

        public float Nota { get; set; }

        public override string ToString()
        {
            return $"{Nota}, {Alumno?.Nombre}, {Asignatura?.Nombre}";
        }
    }

Por suerte he llegado a este curso despu茅s de que introdujeran los cursos de Entity Framework (los he hecho). Entiendo que a los que hicieron este curso antes de que los de EF estuvieran les cost贸 mucho m谩s. Aun as铆 es verdad que el curso podr铆a mejorar mucho m谩s, no se si por el profesor o por el equipo que dise帽o el curso pero es hora de que lo actualicen y le den esas mejoras.

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 鈥淐ategoryModel鈥 que equivale al 鈥淎signaturas鈥 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 鈥淪eeds鈥 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鈥