2010-03-31 1 views
1

У меня есть база данных, состоящая из 5 таблиц: курс, категория, местоположение, учебные категории и курсы. Последние 2 таблицы содержат только два внешних ключа. Курс имеет отношения «многие ко многим» как с категорией, так и по местоположению.Ria Services, загружающие внешние ключи с Linq-to-SQL

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

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

ответ

4

Есть два шага для включения записи из внешнего ключа отношения:

1. Скажите WCF RIA Services о Включать

Размещая атрибут [Include] в определении вашего лица, над Внешний ключ

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

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

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

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

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

+0

Моя проблема была я привязки к объектам рано. Включенные объекты пересекались, но задерживались с момента появления объекта в коллекции. Маркировка как ответ, потому что это было очень близко к моей проблеме в первую очередь. – Stephan