Tôi có ứng dụng web MVC4 sử dụng Mã khung thực thể 5.0 trước tiên.Cách khởi tạo cơ sở dữ liệu với Khung thực thể và bảng thành viên
Trong Global.asax.cs Tôi có bootstrapper khởi tạo Entity.Database, buộc cơ sở dữ liệu được khởi tạo và khởi tạo cơ sở dữ liệu cho tư cách thành viên. Mã này là một trong những điều này:
System.Data.Entity.Database.SetInitializer(new DatabaseContextInitializer());
Database.Initialize(true);
WebSecurity.InitializeDatabaseConnection(DEFAULTCONNECTION, "UserProfile", "UserId", "UserName", autoCreateTables: true);
các DatabaseContextInitializer là rất đơn giản cho thời điểm này:
public class DatabaseContextInitializer : DropCreateDatabaseIfModelChanges<DatabaseContext>
{
protected override void Seed(DatabaseContext dbContext)
{
base.Seed(dbContext);
db.Set<Workout>().Add(new Workout {Id = 1, Name = "My First workout user1"})
}
}
Vấn đề là tôi không thể tạo tài khoản cho thành viên với:
WebSecurity.InitializeDatabaseConnection(DEFAULTCONNECTION, "UserProfile", "UserId", "UserName", autoCreateTables: true);
Vì Tôi có một vấn đề với cơ sở dữ liệu không được tạo ra. Làm thế nào để bạn khởi tạo một số người dùng mặc định cho cơ sở dữ liệu của bạn với Entity Framework 5.0 và Asp.Net MVC 4?
Xin chào, tôi có thể làm cho giải pháp này một nửa. Tôi có trong thực tế để chạy cập nhật cơ sở dữ liệu hai lần vì lần đầu tiên cơ sở dữ liệu được tạo ra nhưng không phải bảng. Tôi có lỗi "Không thể mở cơ sở dữ liệu" WorkoutPlannerDb "yêu cầu đăng nhập. Đăng nhập thất bại." Tôi đoán đó là vì InitializeDatabaseConnection mở lại một kết nối mới thay vì sử dụng kết nối đầu tiên? –
AutomaticMigrationsEnabled = true; rất đáng sợ để sử dụng. Nó tự động di chuyển cơ sở dữ liệu bất cứ khi nào bạn thay đổi mã DbContext đầu tiên và không bao giờ được sử dụng trong môi trường sản xuất. Nó là vô cùng khó khăn để phục hồi từ phá vỡ những thay đổi trong DB, vì bạn không có bước di chuyển để theo dõi trở lại từ. Thay vào đó, hãy sử dụng "thêm di chuyển" để thêm rõ ràng các bước di chuyển cho mỗi thay đổi đối với mô hình DB đầu tiên mã. – angularsen
@Darin: Xin lỗi để đưa ra một câu hỏi cũ hơn, nhưng điều này vẫn sẽ áp dụng nếu bạn tách ra bối cảnh EF từ dự án web của bạn? Tôi không thể tưởng tượng bạn muốn tham chiếu đến WebMatrix. * Và System.Web.Security như đã tạo ra các phụ thuộc không nên tồn tại ở mức dữ liệu ... (Có lẽ tôi nên đặt câu hỏi cho điều này?) –