RIA Stored Proc - код службы не выполняется - PullRequest
1 голос
/ 24 января 2012

У меня есть пользовательская хранимая процедура в SQL Server, которую я хотел бы выполнить через службы RIA. Я завершил импорт функции скалярным типом возврата (при условии, что сохраненный процесс возвращает количество строк). Я вижу свою хранимую процедуру в моем ObjectContext. Я завернул сохраненный процесс в мою службу RIA, вызванную из моего клиента Silverlight. В этом примере клиент вызывает метод ApproveOrRejectLeave, но серверный код никогда не выполняется. Я даже пытался вызвать tmsService.SubmitChanges (), но на стороне сервера ничего не происходит.

Я что-то упустил?

Клиентская сторона:

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

Сторона сервера:

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

Спасибо, Рав

1 Ответ

1 голос
/ 25 января 2012

Я нашел причину !! Все, что требуется, это атрибут [Invoke]. Службы RIA вызывают методы с атрибутами [Edit], [Insert] и [Delete] на основе EntityState (Modified, Inserted или Deleted соответственно). Так как мой метод не имеет определенного действия и является вызовом Stored Proc, RIA не может найти «действительный» EntityState и не вызывает этот метод сервера. Декодирование его атрибутом [Invoke] сделало свое дело !!

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