Ứng dụng của tôi đang được chuyển đến .NET core sẽ sử dụng EF Core mới với SQLite. Tôi muốn tự động tạo cơ sở dữ liệu và cấu trúc bảng khi ứng dụng được chạy lần đầu tiên. Theo tài liệu lõi EF này được thực hiện bằng thủ công lệnhtự động tạo cơ sở dữ liệu trong Entity Framework Core
dotnet ef migrations add MyFirstMigration
dotnet ef database update
Tuy nhiên tôi không muốn người dùng cuối để nhập các lệnh này và muốn có ứng dụng tạo và thiết lập cơ sở dữ liệu để sử dụng đầu tiên. Đối với EF 6, có chức năng như
Database.SetInitializer(new CreateDatabaseIfNotExists<MyContext>());
Nhưng trong EF Core này dường như không tồn tại. Tôi không thể tìm thấy bất kỳ ví dụ hoặc tài liệu về một cái gì đó tương đương với lõi EF và nó không được đề cập trong danh sách các tính năng còn thiếu trong tài liệu lõi EF. Tôi đã thiết lập các lớp mô hình vì vậy tôi có thể viết một số mã để khởi tạo cơ sở dữ liệu dựa trên các mô hình nhưng sẽ dễ dàng hơn nếu khung làm việc này tự động. Tôi không muốn tự động xây dựng mô hình hoặc di chuyển, chỉ cần tạo cấu trúc bảng trên cơ sở dữ liệu mới.
Tôi có thiếu gì đó ở đây hoặc tự động tạo chức năng bảng bị thiếu trong lõi EF không?
Tôi vẫn khá mới với EF, tôi đã tạo ra các lớp xác định cấu trúc dữ liệu bằng cách sử dụng mã EF 6 đầu tiên "tạo từ cơ sở dữ liệu" từ studio trực quan bằng cách sử dụng tệp cơ sở dữ liệu hiện tại. Sau đó tôi cắt/dán chúng vào giải pháp VS lõi dotnet mới - vì vậy tôi đoán đây không phải là di chuyển. Điều đó có nghĩa là tôi phải tạo một tệp di chuyển trước khi mã trên có thể được sử dụng? – deandob
Tôi xin lỗi, tôi đã làm một sai lầm trong câu trả lời của tôi, nếu bạn không sử dụng di chuyển, có thể sử dụng lệnh context.Database.EnsureCreated()/EnsureDeleted(), chi tiết hơn trong https://blogs.msdn.microsoft. com/dotnet/2016/09/29/triển khai-seeding-custom-quy ước-và-interceptors-in-ef-core-1-0/ –
Đúng, làm việc một điều trị, cảm ơn. – deandob