2011-08-21 6 views
5

Tôi đang gặp vấn đề sau với WCF RIA Services: Tôi có một bảng Customer và một bảng Địa chỉ. Khách hàng có thể có 0 ... n địa chỉ. Có một biểu mẫu để chỉnh sửa khách hàng, với một Datagrid hiển thị địa chỉ. Bạn thêm/chỉnh sửa địa chỉ trong cửa sổ con bằng cách nhấp vào Thêm/Chỉnh sửa. Bây giờ đây là điều:Từ chối các thay đổi cho các thực thể cụ thể

Vấn đề là người dùng phải luôn có thể hủy chỉnh sửa. Đây không phải là một vấn đề trừ: Nếu bạn tạo một khách hàng mới và bạn thêm một địa chỉ để khách hàng đó, sau đó muốn chỉnh sửa địa chỉ nhưng muốn hủy mà chỉnh sửa.

  • Bạn không thể thực hiện Từ chối các thay đổi đối với ngữ cảnh, vì nó sẽ xóa địa chỉ với khách hàng.
  • Bạn không thể sử dụng ngữ cảnh riêng biệt vì sau đó bạn không thể thiết lập quan hệ khóa ngoại.

Các bạn sẽ giải quyết điều đó như thế nào?

Trả lời

6

Thực thể thực hiện IRevertibleChangeTracking để hỗ trợ trường hợp này. Kể từ khi nó được thực hiện một cách rõ ràng, bạn sẽ phải bỏ nó. Mã sau đây sẽ hoạt động.

((IRevertibleChangeTracking)address).RejectChanges(); 
+0

lỗi chính tả nhỏ trong tên giao diện (IRevertibleChangeTracking) http://msdn.microsoft.com/en-us/library/system .componentmodel.irevertiblechangetracking% 28v = VS.95% 29.aspx –

+0

Cảm ơn. Bạn có tin rằng tôi liên tục hiểu sai? :) –

+0

Rất hữu ích, chỉ cần thông tin tôi cần. Cảm ơn. – peter

0

Đó là làm việc trong trường hợp chỉnh sửa nhưng không phải trong trường hợp mới ..

+0

Trong trường hợp bạn mới nust detatch các thực thể một lần nữa. – LueTm