Có một điểm để lưu thay đổi sau một hành động chỉ đọc không? Các thực thể được tải vào bộ nhớ cache, nhưng không có gì thay đổi, nên lưu các thay đổi được gọi trước khi vứt bỏ?Khuôn khổ thực thể lưu thay đổi
5
A
Trả lời
4
Từ doc (DbContext.SaveChanges
):
Tiết kiệm tất cả các thay đổi được thực hiện trong bối cảnh này đến cơ sở dữ liệu cơ bản.
Không có điểm nào khi gọi SaveChanges
nếu bạn chưa thực hiện bất kỳ thay đổi nào về ngữ cảnh của mình.
Bạn có thể đọc thêm về điều này một cách chi tiết here
Một thực thể có thể ở một trong năm quốc gia theo quy định của liệt kê EntityState. Các trạng thái này là:
- Added: đơn vị đang được theo dõi bởi bối cảnh nhưng chưa tồn tại trong cơ sở dữ liệu
- không thay đổi: đơn vị đang được theo dõi bởi bối cảnh và tồn tại trong cơ sở dữ liệu, và tài sản của mình các giá trị không thay đổi từ các giá trị trong cơ sở dữ liệu
- Đã sửa đổi: thực thể đang được theo dõi bởi ngữ cảnh và tồn tại trong cơ sở dữ liệu và một số hoặc tất cả các giá trị thuộc tính của nó đã được sửa đổi
- Đã xóa: thực thể đang được theo dõi theo ngữ cảnh và tồn tại trong cơ sở dữ liệu, nhưng đã được đánh dấu để xóa khỏi cơ sở dữ liệu trong lần tiếp theo SaveChanges là gọi
- tách rời: đơn vị không được theo dõi bởi bối cảnh
SaveChanges làm những việc khác nhau cho các đối tượng ở các bang khác nhau:
- thực thể không thay đổi được không xúc động SaveChanges. Các cập nhật không được gửi đến cơ sở dữ liệu cho các thực thể trong trạng thái Unchanged.
- Các đối tượng đã thêm được chèn vào cơ sở dữ liệu và sau đó trở thành Không thay đổi khi SaveChanges trả về.
- Thực thể được sửa đổi được cập nhật trong cơ sở dữ liệu và sau đó trở thành Không thay đổi khi SaveChanges trả về.
- Các thực thể đã xóa sẽ bị xóa khỏi cơ sở dữ liệu và sau đó được tách ra khỏi ngữ cảnh.
0
Bạn không cần phải gọi SaveChanges()
trừ khi bạn làm bất cứ Add
hoặc Update
trong Entity.
Các vấn đề liên quan
- 1. Khuôn khổ thực thể không lưu thay đổi
- 2. Thay đổi không gian tên trong Khuôn khổ thực thể
- 3. Khuôn khổ thực thể UnintentionalCodeFirstException
- 4. Khuôn khổ thực thể PostgreSQL
- 5. Mẫu Kho lưu trữ và Khuôn khổ Thực thể
- 6. Khuôn khổ Phoenix - Xác thực thay đổi tùy chỉnh
- 7. Khuôn khổ thực thể - COUNT thay vì CHỌN
- 8. Khuôn khổ thực thể và đa luồng
- 9. Khuôn khổ thực thể thay vì kích hoạt
- 10. Khuôn khổ thực thể có nhiều edmx
- 11. Thay đổi lược đồ cơ sở dữ liệu khuôn khổ thực thể tại thời gian chạy
- 12. Khuôn khổ thực thể có mã MVC
- 13. Khuôn khổ thực thể 4.1 Cột ma
- 14. thực thể khuôn khổ: điều kiện lọc
- 15. Khuôn khổ thực thể 4 - Thừa kế
- 16. Khuôn khổ thực thể và MongoDb
- 17. Khuôn khổ thực thể - Chọn riêng trong
- 18. Khuôn khổ thực thể trên xóa tầng
- 19. Sử dụng lưu đồng bộ các thay đổi trên Khuôn khổ thực thể với nhiều ngữ cảnh
- 20. Mã khuôn khổ thực thể Đầu tiên ReadOnly Thực thể
- 21. Khuôn khổ thực thể không theo dõi thay đổi bộ sưu tập khi kết nối lại một thực thể
- 22. Khuôn khổ thực thể 5 InvalidOperationException trên Tải lại
- 23. Mã khuôn khổ thực thể Đầu tiên không có app.config
- 24. Khuôn khổ thực thể và CẬP NHẬT CASCADE
- 25. Khuôn khổ thực thể - Hoạt động kiểm toán
- 26. Khuôn khổ thực thể DbContext trong vai trò Web Azure
- 27. Khuôn khổ thực thể: ánh xạ tinyint thành boolean
- 28. Lưu các đối tượng đơn lẻ với mã Khuôn khổ thực thể đầu tiên
- 29. Khuôn khổ thực thể EF4.1 - thủ tục lưu sẵn "không thể tìm thấy trong vùng chứa"
- 30. Cách thêm bảng trong Khuôn khổ thực thể?