Свойства навигации в HTML-клиенте с источником данных сервера sql

Visual Studio Lightswitch 2013 Используя источник данных сервера sql, у нас есть объект A с отношениями n: 1 к другим объектам B, C, ...; Итак, объект A имеет некоторые навигационные свойства типа B, C,...

В HTML-клиенте после запроса объекта A свойства B, C,... не определены. Это происходит в следующих случаях:

  • добавлен элемент данных на экран с включенными связанными объектами (используется функция «управление включенными данными» в «редактировании запроса»); используется метод загрузки объекта элемента данных для программной загрузки данных визуальной коллекции (например: screen.Customers.load(false).then(...))

  • программно использовал службу данных с помощью метода «расширить» (например, myapp.activeDataWorkspace.SqlData.Customers.expand("Address").execute().then(... )

При проверке возвращенных данных «скрытое» свойство «_» каждого экземпляра сущности имеет правильно загруженные поля внешнего ключа.

Примечание. Проверка запрошенного URL-адреса с помощью Fiddler показывает, что запрос правильный; проверка запроса, выданного сервером sql (через Sql Server Profiler), показывает, что запрос включает связанные данные. Выполнение запроса OData показывает, что возвращаются все данные. Кажется, что на стороне клиента при десериализации данных объекты навигации не материализуются.

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

Кто-нибудь может помочь?

Спасибо.


person user2062883    schedule 22.04.2014    source источник


Ответы (1)


Дальнейшее тестирование показывает, что только внешние ключи к столбцам int правильно обрабатываются как свойства навигации. Примеры:

  • «неправильный» случай: таблица A, первичный ключ = поле nvarchar Таблица B с полем B.f1 типа nvarchar в качестве внешнего ключа для A

    Свойство навигации определено, но не материализовано на стороне клиента.

  • «правильный» случай Таблица C, первичный ключ = поле int Таблица D с полем D.f1 типа int в качестве внешнего ключа для C

    Свойство навигации определяется и материализуется на стороне клиента.

person user2062883    schedule 23.04.2014