2012-01-24 2 views
1

SQL Server에 RIA 서비스를 통해 실행하려는 사용자 지정 저장 프로 시저가 있습니다. 스칼라 리턴 타입 (함수 proc이 행 수를 반환한다고 가정하면 int)을 사용하여 함수 가져 오기를 완료했습니다. 내 ObjectContext에서 저장 프로 시저를 볼 수 있습니다. 내 RIA 서비스에 저장된 proc 파일을 래핑하여 Silverlight 클라이언트에서 호출했습니다. 클라이언트는이 예제에서 "ApproveOrRejectLeave"메서드를 호출하지만 서버 측 코드는 실행되지 않습니다. 나는 심지어 tmsService.SubmitChanges()를 호출하려했지만 서버 측에서 아무 일도 일어나지 않았다.RIA Stored Proc - 서비스 코드가 실행되지 않습니다.

내가 누락 된 항목이 있습니까?

클라이언트 측 :

EmpDomainContext tmsService = new EmpDomainContext(); 
tmsService.ApproveOrRejectLeave(leaveRequest); 

서버 측 :

public void ApproveOrRejectLeave(LeaveRequestView current) 
{ 
    ObjectResult result = this.ObjectContext.ApproveOrRejectLeave(current.EmpId, current.ReviewedByUserId, current.StatusId); 
} 

감사합니다, RAV는

답변

1

나는 이유를 발견했다! 필요한 것은 [Invoke] 속성뿐입니다. RIA Services는 EntityState (Modified, Inserted 또는 Deleted)를 기반으로 [Edit], [Insert] 및 [Delete] 속성을 사용하여 메서드를 호출합니다. 내 메서드는 특정 동작이 없으며 Stored Proc 호출이므로 RIA는 "유효한"EntityState를 찾을 수 없으며이 서버 메서드를 호출하지 않습니다. [Invoke] 속성을 사용하여 그것을 장식하는 것이 트릭을 만들었습니다 !!

[Invoke] 
    public void ApproveOrRejectLeave(LeaveRequestView current) {  ObjectResult result = this.ObjectContext.ApproveOrRejectLeave(current.EmpId, current.ReviewedByUserId, current.StatusId); } 
관련 문제