2013-04-02 1 views
0

큰 시스템의 데이터 리포지토리로 사용되는 WCF 데이터 서비스 (OData)가 있습니다. 저장소의 엔터티 작업을 기반으로 특정 메서드를 실행하려고합니다.WCF 데이터 서비스 : ChangeInterceptor가 업데이트를 위해 실행되지 않습니다.

특히 누군가가 Message 레코드를 변경하면 파이프 라인에 연결하려고합니다. 나는 이것을 위해 ChangeInterceptors을 사용하고 있습니다.

AddDelete에서 작동합니다. 그러나 엔터티가 업데이트되면 아무 것도 발생하지 않습니다. DbContext은 엔티티가 변경되었다는 사실을 해결할 수 없다는 우려가 있습니다. 왜냐하면 그 요청은 상태가 없기 때문입니다.

이 핸들러를 트리거하지 않습니다

var whatever = from m in Messages 
where m.MessageKey == 3 
select m; 

whatever.First().UpdatedDate = DateTime.Now; 
this.SaveChanges(); 

다른 사람이이 문제에 직면 했습니까?

답변

0

그래서 내 레코드가 분리되었다는 사실을 처리하기 위해 AttachTo()를 사용하려고했습니다. 이 평면 밖으로 작동하고, 같은 예외를 런타임을 주도하지 않은 다음

이 작업은 엔티티는 엔티티 유형이 될 필요하고, 적어도 하나의 키 property.Parameter 이름이 있습니다 엔티티를

여하튼

var whatever = (from m in Messages where m.MessageKey == 1 
select m).Single(); 

whatever.UpdatedDate = DateTime.Now; 
this.UpdateObject(whatever); 
this.SaveChanges(); 
단지 업데이트 방법을 사용하여 변경이 인터셉트 (실제로 적용) 될