2009-03-18 26 views
7

Cách tốt nhất để kiểm tra các vấn đề đồng thời khi sử dụng LINQ to SQL trong một ứng dụng ASP.net là gì.Đồng thời với LINQ to SQL và ASP.NET

Trong ứng dụng của mình, tôi đang lấy bản ghi từ cơ sở dữ liệu và hiển thị các trường trong hộp văn bản có thể chỉnh sửa. Sau đó, datacontext được vứt bỏ.

Làm cách nào để lưu đối tượng thực thể để tôi có thể sử dụng các tính năng đồng thời được tích hợp của L2Sql? Tôi không thể lưu các đối tượng trong phiên và gắn lại nó vào một datacontext mới: l2s phàn nàn rằng đối tượng không phải là mới.

LinqDataSource quản lý để thực hiện việc này bằng cách nào đó. Có ai biết làm thế nào?

Trả lời

2

Cách đồng thời lạc quan trong Linq2Sql hoạt động là nó lưu trữ các giá trị ban đầu và so sánh chúng trên chèn.

Nếu bạn ném dữ liệu văn bản đi, bạn sẽ mất các giá trị ban đầu.

Điều tôi thường làm là nạp biểu mẫu của đối tượng một lần nữa khi tôi sắp lưu, sau đó sửa đổi đối tượng đó bằng các giá trị từ biểu mẫu.

+2

Có, nhưng nếu tôi làm điều đó (mà tôi đã trước) bất kỳ thay đổi của người dùng khác sẽ được tải và LINQ to sql sẽ không ném một lỗi đồng thời. –

+0

bạn đã thử xem Bảng . Phương pháp Tiếp cận (thực thể TEntity, TEntity original) chưa? – AndreasN

+0

Điều này khác với việc nhận đối tượng từ cơ sở dữ liệu và thực hiện thay đổi và thực hiện SubmitChanges() như thế nào? –

0

LINQ to SQL theo mặc định hỗ trợ optimistic concurrency control.

Bạn có thể thay đổi UpdateCheck tài sản của từng lĩnh vực trong bảng của bạn:

In the LINQ to SQL object model, an optimistic concurrency conflict occurs when both of the following conditions are true:

  • The client tries to submit changes to the database.
  • One or more update-check values have been updated in the database since the client last read them.
+0

Sự cố của họ là họ mất DataContext khi đăng lại và bạn không thể đính kèm đối tượng gốc một DC mới. – Lucas