둘 이상의 사용자가 동시에 변경하고 삭제하고 추가 할 수있는 엔터티 목록 (예 : TODO 항목 목록)이 있다고 가정 해 보겠습니다.ADO.NET Data Services로 "최신 항목 변경됨"을 구현하는 방법은 무엇입니까?
모든 클라이언트간에 나열된 동기화를 유지하려면 각 클라이언트 (AJAX 기반)가 xx 초마다 변경 사항을 묻기를 원합니다. 목록이 길게 늘어날 수 있기 때문에 매번 전체 요청을하고 싶지는 않지만 변경된 항목 (항목은 업데이트되거나 삭제되거나 새로 추가 될 수 있음) 만 요청하십시오.
ADO.NET Data Services에서 가능합니까? 그렇다면 서버에서 Entity Framework를 사용하면 어떻게 구현합니까?
변경 작업을 데이터 서비스에 제출할 때 ASP.NET 캐시를 사용하여 변경 항목을 저장하고 특정 클라이언트가 마지막 요청 (요청이있을 수 있기 때문에 최신 변경 사항을 반환하는 사용자 지정 웹 메서드 사용)을 고려했습니다. 클라이언트 ASP.NET 세션 개체를 통해 추적 됨). 그러나 결과 집합에 개별 항목 (예 : 삭제 또는 업데이트 또는 삽입)의 변경 상태를 나타내는 방법을 모르겠습니다.
또한 훌륭한 해결책은 클라이언트가 서버에 대한 동일한 라운드 트립에서 많은 엔티티의 변경을 요청할 수있게합니다.
모든 입력이 훨씬 쉽게 이루어질 것입니다.
감사합니다. Egil.
크리스토퍼에게 감사드립니다. 귀하의 아이디어는 분명히 효과가 있지만 변경 관리를 데이터베이스에서 지키고 싶습니다. 제 세계에서는 클라이언트와 관련이 있으며 실제로 데이터와 관련이 없습니다. –
어쩌면 당신은 결과 집합을 global.asax에 캐싱하고 거기에 결과 집합에 생성 필드 등을 추가하여 DB를 사용하지 않고 기본적으로 동일한 구성표를 사용할 수 있습니다. 그런 다음 클라이언트의 세대 번호를 세션이나 JS에 캐시하여 업데이트/삽입/삭제를 가져올 수 있습니다. –
데이터베이스에 내 데이터를 저장해야하지만 어떻게 든 결과 집합을 수정할 수 있다면 좋을 것입니다. 나는 EF가 어떻게 그렇게 할 수 있는지 잘 모르겠습니다. –