Lightswitch: почему LS вызывает метод [Query (IsDefault = true)] после создания нового элемента? - PullRequest
1 голос
/ 07 февраля 2012

У меня вопрос:

Когда я создаю свой собственный сервис домена (для использования стороннего веб-сервиса), где я использую параметризованные методы CRUD, все работает, кроме создания новой записи. Lightswitch добавляет эту службу домена в качестве источника данных и может создать экран для добавления новой записи. Когда я нажимаю кнопку «Сохранить» в сгенерированном приложении, оно правильно вызывает метод «Создать в домене», запись правильно создается удаленной веб-службой, и программа оставляет метод «Создать» в домене. но внезапно световой переключатель вызывает метод запроса по умолчанию, который не параметризован и возвращает IEnumerable в моем случае.

Похоже, Lightswitch пытается перечитать созданную запись, чтобы отобразить ее. Но он не использует правильный метод ReadOne, который правильно подготовлен, создан и даже распознан Lightswitch, потому что он может вызывать его на другом подробном экране.

Почему Lightswitch вызывает этот метод [Query (IsDefault = true)], пожалуйста?

Спасибо за любые подсказки

Густа Вомачка

1 Ответ

0 голосов
/ 08 февраля 2012

Причина, по которой LightSwitch требует, чтобы у вас был метод по умолчанию, который не принимает параметров, заключается в том, что он угрожает службам RIA WCF, таким как «таблицы базы данных», и будет вызывать этот метод всякий раз, когда пытается отобразить информацию «в таблице». Если у вас есть фильтр, он также попытается отфильтровать данные (например, чтобы получить первую страницу, он добавит «.skip (1) .Take (10)» к вызову).

Вы можете ответить, что в этом случае не следует использовать Службу RIA WCF.

Используйте этот метод:

http://blogs.msdn.com/b/bethmassi/archive/2012/01/30/calling-web-services-to-validate-data-in-visual-studio-lightswitch.aspx

...