У меня есть решение со следующими двумя проектами:
- Библиотека классов Razor
- Веб-приложение ASP.NET Core
В библиотеке классовУ меня есть dbcontext, как это:
public partial class ApplicationDbContext : IdentityDbContext<ApplicationUser, ApplicationRole, string>
{
public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
: base(options)
{
}
public DbSet<Customer> Customers { get; set; }
}
В веб-приложении я регистрирую dbcontext как сервис, используя следующие строки в моем файле Startup.cs
services.AddDbContext<ApplicationDbContext>(options =>
options.UseSqlServer(
Configuration.GetConnectionString("ApplicationDbContextConnection")));
На этом этапе яможно использовать dbcontext в обоих проектах.Теперь, не изменяя библиотеку классов, я хочу определить новые таблицы для той же базы данных, поэтому я создал новый проект dbcontext в проекте веб-приложения, который наследует тот, который у меня есть в библиотеке классов.
public class ExtendedApplicationDbContext : ApplicationDbContext
{
public ExtendedApplicationDbContext(DbContextOptions<ApplicationDbContext> options) : base(options)
{
}
public DbSet<Product> Products { get; set; }
}
Я обновляю свой файл Startup.cs, чтобы я также зарегистрировал новый dbcontext, чтобы я мог использовать таблицу «Продукты» в веб-приложении.
services.AddDbContext<ApplicationDbContext>(options =>
options.UseSqlServer(
Configuration.GetConnectionString("ApplicationDbContextConnection")));
services.AddDbContext<ExtendedApplicationDbContext>(options =>
options.UseSqlServer(
Configuration.GetConnectionString("ApplicationDbContextConnection")));
Теперь я могу использовать ApplicationDbContext в обоих проектахно когда я пытаюсь использовать ExtendedApplicationDbContext в веб-приложении, происходит что-то странное.
Я могу прочитать данные, но все изменения, которые я делаю, не обновляют базу данных.
Я пытаюсь объяснить это, но не могу найти способ решить проблему.Может ли кто-нибудь помочь мне понять, что не так с моим кодом?