Tôi đã tạo hai DbContexts, một là dành cho cấu hình ứng dụng, thứ hai là để ghi nhật ký.Nhiều DbContext, nhiều Database.SetInitializer
Lý do là, tôi muốn đặt kích thước tối đa trên db nhật ký để không sử dụng hết dung lượng đĩa trống và ngăn cơ sở dữ liệu khác hoạt động.
Trong tập global.asax.cs tôi, tôi có như sau:
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
RegisterGlobalFilters(GlobalFilters.Filters);
RegisterRoutes(RouteTable.Routes);
Database.SetInitializer<AdminContext>(new AdminInitialiser());
Database.SetInitializer<LoggingContext>(new LoggingInitialiser());
}
Phương pháp InitializeDatabase trong LoggingInitialiser không được gọi. Đây có phải vì chỉ có một bộ khởi tạo có thể được đặt? Có cách nào để có initializers cho hai DbContexts?
Không có rủi ro mà việc này sẽ bị gọi nhiều lần không? Tôi nghi ngờ initialisation là tốn kém, ngay cả khi không có thay đổi để triển khai. Làm thế nào về nếu bạn đặt nó trong một constructor tĩnh, có nghĩa là nó sẽ chỉ bao giờ được gọi là một lần? – Holf