Sto provando a utilizzare lo scaffolding per generare controller MVC con viste, utilizzando Entity Framework:
Ho creato ApplicationDBContext:
public class ApplicationDbContext : DbContext
{
public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
: base(options)
{
}
public DbSet<med1.Models.House> House { get; set; }
}
e aggiunto a ConfigureServices:
services.AddDbContext<Data.ApplicationDbContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
E ovviamente ho il modello di casa:
public class House
{
public int ID { get; set; }
public string HouseName { get; set; }
public string Address1 { get; set; }
public int CityID { get; set; }
public City City { get; set; }
public string ZIP { get; set; }
public int StateID { get; set; }
public State State { get; set; }
}
Ho ricevuto l'errore seguente:
Ok, ho aggiunto il costruttore senza parametri a ApplicationDBContext:
public ApplicationDbContext() { }
E ha ottenuto il seguente errore: .
In realtà ho avuto lo stesso problema con il progetto precedente e ho creato Controller e View manualmente.
Ma per questo progetto mi piacerebbe usare l'impalcatura.
Sto facendo qualcosa di sbagliato o è il problema di anteprima di VS 2017?
Potresti perdere questa parte
public class AppDbContextFactory : IDbContextFactory<AppDbContext>
{
public AppDbContext Create(string[] args) =>
Program.BuildWebHost(args).Services.GetRequiredService<AppDbContext>();
}
Dopo aver abilitato il ponteggio nel progetto ASP.NET Core 2.0 e aver creato il nome del modello come "Casa", segui questi passaggi-
Passaggio 1: fare clic con il pulsante destro del mouse sulla cartella Controller in Esplora soluzioni e selezionare Aggiungi> Nuovo elemento impalcato.
Step2: Seleziona 'MVC Controller with View, using Entity Framework' e fai clic su Aggiungi.
Passaggio 3: in Aggiungi controller, selezionare Modello casa e utilizzare il segno più (+) per creare un nuovo AppDbContext. Aggiungerà anche AppDbContextFactory sopra menzionata.
Dopo aver terminato la fase 3, avrai HousesController nella cartella Controllers e nella cartella Houses corrispondente nella cartella views.
Questo è il mio aspetto AppDbContext come-
public class AppDbContext : DbContext
{
public AppDbContext (DbContextOptions<AppDbContext> options)
: base(options)
{
}
public DbSet<AspNetCore200_VS2017preview1_scaffolding.Models.House> House { get; set; }
}
Spero che questo aiuti a procedere ulteriormente.