Tôi đã sử dụng Entity Framework 4.3 trên cơ sở dữ liệu hiện có và tôi có một vài kịch bản mà tôi đang cố gắng phục vụ.Cách tốt nhất để gia tăng dữ liệu hạt nhân trong Entity Framework 4.3
Thứ nhất, nếu tôi xóa cơ sở dữ liệu của mình, tôi muốn EF tạo lại nếu từ đầu - tôi đã sử dụng thành công trình khởi tạo cơ sở dữ liệu CreateDatabaseIfNotExists cho việc này. Thứ hai, nếu tôi cập nhật mô hình của mình và cơ sở dữ liệu đã tồn tại, tôi muốn cơ sở dữ liệu được cập nhật tự động - tôi đã sử dụng thành công Entity Framework 4.3 Migrations cho việc này.
Vì vậy, đây là câu hỏi của tôi. Giả sử tôi thêm một bảng mới vào mô hình của tôi yêu cầu một số dữ liệu tham chiếu, cách tốt nhất để đảm bảo rằng dữ liệu này được tạo ra khi trình intialiser của cơ sở dữ liệu chạy và khi di chuyển chạy. Mong muốn của tôi là dữ liệu được tạo khi tôi tạo db từ đầu và khi cơ sở dữ liệu được cập nhật do kết quả của quá trình di chuyển đang chạy. Trong một số ví dụ về di cư EF, tôi đã thấy mọi người sử dụng hàm SQL() trong phương thức UP để di chuyển dữ liệu hạt giống, nhưng nếu có thể tôi sẽ sử dụng ngữ cảnh để tạo dữ liệu hạt giống (như bạn thấy trong hầu hết ví dụ khởi tạo cơ sở dữ liệu) vì có vẻ lạ với tôi rằng bạn sẽ sử dụng sql thuần túy khi toàn bộ ý tưởng của EF đang trừu tượng hóa nó. Tôi đã cố gắng sử dụng ngữ cảnh trong phương thức UP nhưng vì lý do nào đó, nó không nghĩ rằng một bảng đã được tạo trong quá trình di chuyển tồn tại khi tôi cố thêm dữ liệu hạt giống ngay bên dưới cuộc gọi để tạo bảng.
Bất kỳ sự khôn ngoan nào được đánh giá cao.
Bạn thực sự có thể tạo ngữ cảnh trong phương thức Up và sử dụng AddOrUpdate để chèn hàng. Tuy nhiên, điều này sẽ không được gói trong giao dịch di chuyển để có thể gây ra sự cố. Ngoài ra nó không được đảm bảo để biên dịch trong tương lai khi mô hình thay đổi. – Betty
Tôi đã thử tạo một ngữ cảnh trong phương thức Up, nhưng nó đã ném một lỗi nói rằng bảng không tồn tại. Tôi sẽ thử SQL trong phương thức "Up" thay thế. –
@Ladislav độ sâu kiến thức của bạn về EF tiếp tục làm tôi ngạc nhiên, bạn đã xem xét việc tạo ra một cuốn sách về chủ đề và có lẽ giải quyết những hiểu lầm phổ biến mà bạn gặp phải ở đây? – kingdango