My DataContext
public RentalContext()
: base(nameOrConnectionString: "RentalContext")
{
Database.SetInitializer<RentalContext>(new CreateDatabaseIfNotExists<RentalContext>());
}
public DbSet<User> Users { get; set; }
public DbSet<Company> Company { get; set; }
public DbSet<Tool> Tools { get; set; }
public DbSet<Transaction> Transactions { get; set; }
При первом использовании не создавать базу данных. Когда я меняю код на
public RentalContext()
: base(nameOrConnectionString: "RentalContext")
{
Database.SetInitializer<RentalContext>(new DropCreateDatabaseIfModelChanges<RentalContext>());
}
public DbSet<User> Users { get; set; }
public DbSet<Company> Company { get; set; }
public DbSet<Tool> Tools { get; set; }
public DbSet<Transaction> Transactions { get; set; }
public void SaveChanges() => base.SaveChanges();
, создается база данных. Но я выиграл, чтобы всегда создавать базу данных, если она не существует.
Я использую контейнер Unity, возможно, я где-то ошибаюсь
{
var context = new RentalContext();
container.RegisterType<ICompanyRepository, CompanyRepository>();
container.RegisterType<IToolRepository, ToolRepository>();
container.RegisterType<ITransactionRepository, TransactionRepository>();
container.RegisterType<IUserRepository, UserRepository>();
container.RegisterType<IRentalContext, RentalContext>();
container.RegisterType<MainWindow>(new InjectionConstructor(container, new TransactionRepository(context)));
container.RegisterType<CompanyWindow>(new InjectionConstructor(container, new CompanyRepository(context)));
container.RegisterType<CompaniesWindow>(new InjectionConstructor(container, new CompanyRepository(context)));
container.RegisterType<UserWindow>(new InjectionConstructor(container, new UserRepository(context)));
container.RegisterType<UsersWindow>(new InjectionConstructor(container, new UserRepository(context)));
container.RegisterType<ToolWindow>(new InjectionConstructor(container, new ToolRepository(context)));
container.RegisterType<ToolsWindow>(new InjectionConstructor(container, new ToolRepository(context)));
container.RegisterType<ToolsForTransactionWindow>(new InjectionConstructor(container, new ToolRepository(context)));
container.RegisterType<TransactionWindow>(new InjectionConstructor(container, new TransactionRepository(context)));
container.RegisterType<StatisticWindow>(new InjectionConstructor(container, new TransactionRepository(context)));
}