Я пытаюсь создать базу данных через EF, чтобы хранить участников и их местоположения.
Я смотрел на другие примеры, но независимо от того, что я делаю, когда я запускаю свою программу, моя база данных нене создается.
Я заметил, что в приведенном мной примере создан класс DataInitializer, который помещает некоторые записи в базу данных.Я еще не сделал этого, так как я хотел бы проверить, создается ли моя база данных с правильными столбцами.
Не может быть проблема с наличием данных в базе данных?
public class ApplicationDbContext : DbContext
{
public DbSet<Lid> Leden { get; set; }
public DbSet<Locatie> Locaties { get; set; }
public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
: base(options)
{
}
protected override void OnModelCreating(ModelBuilder builder)
{
base.OnModelCreating(builder);
builder.ApplyConfiguration(new LidConfiguration());
builder.ApplyConfiguration(new LocatieConfiguration());
}
}
Appsettings.json:
{ "ConnectionStrings": {
"DefaultConnection": "Server=.\\sqlexpress;Database=Taijitan;Trusted_Connection=True;MultipleActiveResultSets=true"},
"Logging": {
"LogLevel": {
"Default": "Warning"
}
},
"AllowedHosts": "*"
}
В приведенном мной примере файл startup.cs также содержит
services.AddScoped<BeerhallDataInitializer>();
и полностью внизу
beerhallDataInitializer.InitializeData();
Не знаюПредположим, что это является причиной проблемы, но я больше не уверен,
РЕДАКТИРОВАТЬ:
public class BeerhallDataInitializer
{
private readonly ApplicationDbContext _dbContext;
public BeerhallDataInitializer(ApplicationDbContext dbContext)
{
_dbContext = dbContext;
}
public void InitializeData()
{
_dbContext.Database.EnsureDeleted();
if (_dbContext.Database.EnsureCreated())
{ *create new objects and add them to _dbcontext*
_dbContext.SaveChanges();
}
}