2009-11-03 30 views
6

Tôi đang phát triển dịch vụ WCF đang sử dụng khung thực thể làm nguồn dữ liệu. Hầu như tất cả là ok ngoại trừ vấn đề với các bản ghi đã xóa. Trong cơ sở dữ liệu của chúng tôi, chúng tôi đang sử dụng xóa mềm (thuộc tính bản ghi đánh dấu IsDeleted = true). Câu hỏi của tôi làm thế nào để loại trừ các bản ghi bị xóa mềm từ bộ thực thể?Khuôn khổ thực thể và bản ghi bị xóa mềm

Ví dụ: pháp nhân "A" có tổ chức được đặt "Bs" (FK thành bảng "B"). Cách đặt thực thể "Bs" đó chỉ được đặt chứa từ các bản ghi không bị xóa?

Cảm ơn bạn

Trả lời

0

Một cách là sử dụng truy vấn xác định. Nhưng chúng tôi thường xử lý điều này trong Kho lưu trữ, vì chúng tôi thực sự muốn thực hiện các thực thể "mềm xóa" trong các trường hợp hiếm hoi.

6

Tôi đã viết một bài về chủ đề này, hy vọng nó sẽ giúp.

http://blog.jorgef.net/2010/12/ef-soft-delete.html

+0

Một điều cần lưu ý là nếu bạn không sử dụng mục nhập.ApplyOriginalValues ​​(entry.Entity), bạn sẽ nhận được giá trị null cho thuộc tính điều hướng của mình. – Noel

0

Bạn có thể lập bản đồ bạn thực thể EF quan điểm thay vì bảng

CREATE VIEW vw_Currency AS 
SELECT 
    * 
FROM 
    Currency c 
WHERE 
    c.IsAKDeleted=0 

Tôi đã làm việc trên một hệ thống mà sử dụng phương pháp này nhưng nó đã không dựa trên EF. Tôi đã không thử nó với EF

Các vấn đề liên quan