Các bước update model entity framework code first from existing database

Em đã có một database rồi, Em connect vào ứng dựng của em. Em có một vài bảng thay đổi, cụ thể là thêm một cột vào một bảng. Em thêm vào database rồi. Giờ em ko biết cách làm thể để migration entity model để trong các classes cập nhật các cột từ database ạ

Khi update database bằng migration bạn phải để ý điều sau.
Nếu bạn thêm 1 cột (not null) vào 1 bảng ĐÃ có dữ liệu và update-database thì sẽ bị lỗi ko update được.
Bạn có thể add migrion, nhưng khi update-database sẽ bị lỗi và mất Bảng migration trogn database và ko thể update được nữa.
Bạn backup-up data ra rồi update databaase lại đi.

1 Like

Cảm ơn anh ạ… Em sẽ note lại… Cho em hỏi là, code first là mình muốn thay đổi thêm hoặc xóa table in database thì điều chỉnh class tương ứng rồi dùng add migration rồi update. Hình như code first rất dễ mất dữ liệu đúng ko anh?

Thực ra thì đối với những người mới bắt đầu sử dụng code fisrt sẽ cảm giác dùng migration rất bất tiện.
Tuy nhiên, dùng migration KO thể làm mất dữ liệu trong database được mà thực ra nó chỉ dễ xảy ra trường hợp mất sự Mapping giữa migration với database thông qua bảng ___Migration trong database. Nếu bạn để ý trong bảng ___Migration trong database sẽ chứa các log khi bạn add-migration.
Khi sử dụng lệnh update-database bị lỗi thì 99% là mất bảng này và đến h mình cũng chưa biết cách để phục hồi nó. Do đó làm mất sự Mapping.
Lời khuyên: Nên dùng tham số -Script -TargetMigration sau lệnh update-database. Bạn sẽ nhận lại 1 đoạn sql tương ứng với đoạn thay đổi đó. Trường hợp lỗi mapping bạn vẫn có thể sử dụng đoạn SQL trên chạy để update database = tay được.
Chúc bạn may mắn

1 Like

Bạn có thể xem video của anh này.!!

Part 5 How to handle model changes in entity framework

// làm cách này hình như bị mất dữ liệu
//No Crop xong tạo lại.
//Nên backup dữ liệu lại… khi dùng cách này

Cảm ơn anh đã tận tình chỉ bảo ạ! cảm ơn anh nhiều ạ

Cảm ơn bạn đã tìm giúp video ạ

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?