Ria Services загружает внешние ключи с помощью Linq-to-SQL - PullRequest
1 голос
/ 31 марта 2010

У меня есть база данных, которая состоит из 5 таблиц: Course, Category, Location, CourseCategories и CourseLocations. Последние 2 таблицы содержат только два внешних ключа. Курс имеет отношения «многие ко многим» с категорией и местоположением.

Я пытаюсь загрузить данные в приложение Silverlight с помощью Ria Services. Моя модель БД - Linq-to-SQL. Я попытался добавить атрибут [Include] к классам метаданных, и я добавил DataLoadOptions, чтобы он загружал все таблицы, когда вы запрашиваете курс. Однако на стороне клиента я никогда не получаю никаких записей в свойствах CourseCategories и CourseLocations.

Что еще нужно сделать, чтобы отношения между внешними ключами существовали во время сериализации.

Ответы [ 2 ]

4 голосов
/ 21 апреля 2010

Существует два шага для включения записей из отношения внешнего ключа:

1. Сообщите WCF RIA Services о включении

Поместив атрибут [Include] в определение вашей организации над внешним ключом

[Include]
public MyOtherTable MyOtherTable { get; set; }

2. Сообщите WCF RIA Servics, что этот конкретный запрос использует значение

В своем запросе вы должны использовать логику .Include("MyOtherTable"), чтобы указать этому запросу включить данные из этого отношения.

public IQueryable<Table> GetTable()    
{
    return this.ObjectContext.Table.Include("MyOtherTable");
}

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

0 голосов
/ 28 ноября 2010

это помогло мне:

http://xamlgeek.net/2010/02/28/properties-in-wcf-ria-services-using-linq-to-sql/

объект DataLoadOptions

...