Заполнение таблиц приложений из таблиц SQL в Visual Studio Lightswitch

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

Теперь я пытаюсь использовать Visual Studio Lightswitch 2012, чтобы создать панель инструментов для просмотра этих данных, и у меня возникают некоторые проблемы.

Сначала у меня есть несколько вычисляемых полей, которые я хочу, чтобы пользователь мог сортировать. Например, в моей базе данных все даты хранятся в формате UTC, но, очевидно, пользователь хочет видеть местное время. Я нашел это руководство, в котором описывается создание отдельного поля, автоматически обновляется с существующим полем. Тем не менее, это не работает для меня, потому что моя таблица определена в SQL-серере, а не в переключателе света, поэтому я не могу создавать новые доступные для записи поля в таблице с помощью переключателя света. Я также не хочу вносить какие-либо изменения в свою базу данных SQL.

Итак, что мне интересно сейчас, так это то, есть ли способ создать отдельные таблицы «ApplicationData» в переключателе света, которые автоматически заполняются/обновляются из данных в SQL Server при запуске моего приложения. И тогда я смогу связать эти таблицы со своими таблицами SQL для сортировки/поиска.

Возможно ли это, и если да, то где я должен поместить этот код? Есть ли где-нибудь метод AppLoad или AppStarting, который был бы правильным местом для размещения этого кода инициализации?


person Eric Anastas    schedule 02.05.2013    source источник


Ответы (1)


Я бы лично сделал это следующим образом:

  1. Присоедините свою базу данных SQL в качестве внешнего источника данных (вы делаете это, чтобы позволить LightSwitch создать модель данных для базы данных).
  2. Добавьте пользовательскую службу RIA, которая будет повторно использовать модель данных, созданную на шаге 1 (мы используем этот метод, чтобы вы могли добавить эквивалент вычисляемых свойств, по которым можно выполнять поиск и сортировку).

Если вы не знакомы с созданием служб RIA для использования LightSwitch, прочтите эту статью Как мне: отобразить диаграмму, построенную на агрегированных данных, покажет вам все, что вам нужно знать, чтобы успешно создать один. Не пугайтесь того факта, что в статье объясняется создание объекта специально для иллюстрации агрегирования данных для отображения на диаграмме, основные методы выполнения того, что вы хотите, одинаковы, просто игнорируйте часть о диаграмме.

Ваши вычисленные свойства будут обычными свойствами строки в вашей службе RIA (поскольку LightSwitch будет искать/сортировать только строковые свойства).

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

person Yann Duran    schedule 03.05.2013
comment
Ааа, спасибо, сейчас попробую. Однако я застрял в той части, где добавляю ссылку на мою службу WCF RIA. Я добавляю ссылку на свою библиотеку классов Reporting, но список доступных классов обслуживания WCF RIA по-прежнему пуст. - person Eric Anastas; 08.05.2013
comment
Подождите, я получил это workign. Я думаю, это было потому, что изначально мой сервисный проект WCF RIA был нацелен на фреймворк 4.5, где проект Lightswitch был нацелен на 4.0. - person Eric Anastas; 08.05.2013
comment
Я рад слышать, что у вас все получилось. Две вещи, которые следует отметить. Проект службы RIA должен быть создан, прежде чем он появится. Иногда может потребоваться несколько секунд, чтобы он появился в первый раз (странно, но факт). - person Yann Duran; 08.05.2013