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