На этом сайте я нашел следующее превосходное пошаговое руководство -
http://betaforums.silverlight.net/forums/p/218383/521023.aspx
1) Добавьте модель данных объекта ADO в ваш веб-проект; Выберите вариант «Сгенерировать из базы данных»; Выберите экземпляр базы данных для подключения.
2) Выберите объект БД для импорта в модель. Вы можете развернуть узел Таблица, чтобы выбрать любую таблицу, которую вы хотите импортировать в Модель. Разверните узел «Хранимая процедура», чтобы выбрать также сохраненную процедуру. Нажмите Готово, чтобы завершить импорт.
3) Щелкните правой кнопкой мыши конструктор модели БД и выберите «Добавить / Импорт функции». Дайте функции имя (то же имя, что и у вашего SP), и выберите хранимую процедуру, которую вы хотите отобразить. Если ваш SP возвращает только одно поле, вы можете отобразить возвращаемый результат в коллекцию скаляров. Если ваш SP возвращает более одного поля, вы можете сопоставить возвращаемый результат с коллекцией или Entity (если все поля взяты из одной таблицы) или с коллекцией сложных типов.
Если вы хотите использовать сложный тип, вы можете нажать кнопку Получить столбец, чтобы получить все столбцы для вашего SP. Затем нажмите кнопку Создать новый сложный тип, чтобы создать этот сложный тип.
4) Добавить класс доменной службы в веб-проект. Выберите DataModel, который вы только что создали, в качестве DataContext этой службы. Выберите весь энтит, который вы хотите выставить клиенту. Сервисные функции должны быть сгенерированы для этих объектов.
5) Возможно, вы не видите тип Complex в списке Entity. Вы должны вручную добавить функцию запроса для вашего SP в вашем Сервисе:
Скажем, ваш SP называется SP1, а созданный вами комплексный тип называется SP1_Result.
Добавьте следующий код в ваш класс обслуживания домена:
public IQueryable<SP1_Result> SP1()
{
return this.ObjectContext.SP1().AsQueryable();
}
Теперь вы можете скомпилировать ваш проект. Вы можете получить сообщение об ошибке, подобное этому: «SP1_Result не имеет ключа» (если вы не участвуете в RIA service SP1 beta). Если вы это сделаете, вам нужно сделать следующее в файле метаданных службы:
Добавлен класс метаданных SP1_Result и помечено поле Key:
[MetadataTypeAttribute(typeof(SP1_Result.SP1_ResultMetadata))]
public partial class SP1_Result
{
internal sealed class SP1_ResultMetadata
{
[Key]
public int MyId; // Change MyId to the ID field of your SP_Result
}
}
6) Скомпилируйте ваше решение. Теперь у вас есть SP1_Result для клиента. Проверьте сгенерированный файл, вы должны увидеть, что SP1_Result генерируется как класс Entity. Теперь вы можете получить доступ к DomainContext.SP1Query и DomainContext.SP1_Results в вашем коде Silverlight. Вы можете обращаться с ним так же, как и с любым другим классом Entity (сущность, сопоставленная с таблицей).