Как передать набор Объектов к.NET Услуга передачи данных RIA?

Действительно ли возможно передать набор объектов к запросу Услуги передачи данных RIA? У меня нет проблем, отправляющих Объект, Интервал или массив типов примитивов, но как только я объявляю метод как это

public void GetLessonsConflicts(Lesson[] lessons)
{
}

я получаю ошибку компиляции

"Операция под названием 'GetLessonsConflicts' не соответствует необходимой подписи. Типы параметра должны быть типом объекта или одним из предопределенных сериализуемых типов"

Я просто пытаюсь сделать некоторую проверку на стороне сервера, прежде чем я сохраню данные. Я попробовал Список, IEnumerable и т.д.

Спасибо

5
задан Vitalik 1 December 2009 в 20:31
поделиться

1 ответ

Думаю, проблема на самом деле в отсутствии возвращаемого значения. Насколько я понимаю, вы можете идентифицировать DomainOperations по соглашению или по атрибуту. Вы не показываете атрибут, поэтому RIA будет пытаться сопоставить его по соглашению.

Например, по соглашению, метод вставки должен:

  • иметь Insert, Add или Create в качестве префикса имени метода, например InsertEmployee
  • соответствует общедоступному пустому имени подписи (Entity e);

метод запроса должен:

  • быть общедоступным
  • возвращать IEnumerable, IQueryable или T (где T - объект).

операция пользовательского домена должна

  • быть общедоступной
  • return void
  • иметь Entity в качестве первого параметра.

РЕДАКТИРОВАТЬ: см. Комментарий Рами А. ниже. Я считаю, что в то время это было правдой, но в настоящее время я не работаю с этой технологией, поэтому я недостаточно осведомлен о ней, чтобы обновить этот ответ, кроме как отметить, что он может быть неправильным.

Или вы можете использовать такие атрибуты, как [Insert], [Delete], [Update], [Query], [Custom]. В моих документах все атрибуты удаляют требование соглашения об именах - мне непонятно, чего достигают атрибуты [Query] и [Custom].

Помимо DomainOperations, вы можете определить ServiceOperations (используя атрибут [ServiceOperation]) и InvokeOperations.

Эта статья может помочь (хотя я думаю, что она немного устарела).

5
ответ дан 14 December 2019 в 19:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: