Cho phép nói rằng tôi truy vấn cơ sở dữ liệu và tải danh sách các mục. Sau đó, tôi mở một trong các mục ở dạng xem chi tiết và thay vì truy vấn lại mục đó ra khỏi cơ sở dữ liệu, tôi tạo một thể hiện của mục từ nguồn dữ liệu trong danh sách.Cập nhật bản ghi mà không cần truy vấn đầu tiên?
Có cách nào tôi có thể cập nhật bản ghi cơ sở dữ liệu mà không tìm nạp bản ghi của mục riêng lẻ không?
Đây là một mẫu như thế nào tôi đang làm bây giờ:
dataItem itemToUpdate = (from t in dataEntity.items
where t.id == id
select t).FirstOrDefault();
Sau đó, sau khi kéo kỷ lục tôi cập nhật một số giá trị trong mục đó và đẩy kỷ lục trở lại:
itemToUpdate.itemstatus = newStatus;
dataEntity.SaveChanges();
Tôi sẽ nghĩ sẽ có cách nào tốt hơn để làm điều này, bất kỳ ý tưởng nào?
Nó không phải là một cách khủng khiếp xấu o làm việc. Bạn có quyền truy cập đồng thời vào bảng đó không? –
Tôi nghĩ đây là cách sử dụng mà một ORM như EF chính xác ở đó để phục vụ. Để cho phép các hoạt động trong ngữ cảnh của ứng dụng được thực hiện trên các đối tượng mà bạn muốn tạo/sửa đổi/xóa, mà không cần quan tâm đến việc triển khai DB cơ bản? –
Tôi nghĩ cho các nhà phát triển có một nền tảng trong TSQL cố gắng chấp nhận và nắm lấy ORM, một chút không hiệu quả để tra cứu một bản ghi chỉ để cập nhật nó và không bao giờ sử dụng dữ liệu được tìm nạp. Khái niệm này mà một nhà phát triển không cần phải quan tâm đến việc triển khai DB cơ bản là một crock. Nhà phát triển càng biết nhiều về toàn bộ hệ thống thì giải pháp càng tốt. Tùy chọn không bao giờ là một điều xấu. – barrypicker