Службы Silverlight / .NET RIA - Предоставление клиенту пользовательского свойства - PullRequest
1 голос
/ 28 января 2010

В моей базе данных есть таблица «Задача». Задача имеет следующие поля: - Я БЫ - Описание - AssignedUserID - TaskTypeID

Я получаю доступ к этой таблице через класс, который был создан автоматически после того, как я использовал модель данных объекта ADO.NET. Я могу загрузить и показать поля, упомянутые выше, в DataGrid в моем приложении Silverlight. Однако AssignedUserID и TaskTypeID не очень описательны. Поэтому я решил создать хранимую процедуру, которая получает задачи и имена пользователей и типов задач через соответствующие таблицы поиска. Вот в чем проблема.

Я хочу создать некоторые пользовательские свойства в автоматически сгенерированном классе «Задача». Пользовательские свойства будут называться «AssignedUserName» и «TaskType». Затем я хочу сделать эти свойства доступными для моего клиента Silverlight. Тем не менее, я не могу понять, как открыть их для моего клиента Silverlight.

Может кто-нибудь помочь? Спасибо

Ответы [ 2 ]

3 голосов
/ 28 января 2010

Если ваш EDM находится в том же проекте, что и DomainService, вы можете сделать это:

создайте частичный класс для типа Entity и добавьте туда вычисляемое свойство.

назовите файл **. Shared.cs

он будет автоматически предоставлен клиенту / коду Silverlight.

<ч /> Редактировать: Я предполагал, что вы могли бы сделать это вычисление в логике приложения, а не использовать sp, что мне кажется более простым.

Если вы используете SP, вам потребуется использовать функцию Импорт функций в конструкторе, чтобы сопоставить SP с функцией в EDM. Затем эта функция может возвращать сущности со свойствами, отображенными на ваше усмотрение.

Более простым способом было бы просто использовать объектную модель: иметь Task.AssignedUser и Task.TaskType объекты вне вашего класса Task. Сопоставьте их с таблицами поиска в вашей базе данных. Это будет работать из коробки (при условии, что идентификаторы - это FK для этих таблиц поиска).

Итак, пара вариантов:

  1. использовать app-logic - свойства в частичном классе для возврата описаний
  2. используйте объектную модель, управляемую FK, для просмотра таблиц, затем просто получите доступ к Task.AssignedUser.Name или Task.TaskType.Description
  3. используйте функцию import для доступа к SP и сопоставления возвращаемых значений со свойствами объекта

1 или 2 - лучшие варианты ИМХО.

1 голос
/ 28 января 2010

Другой подход может состоять в том, чтобы обновить вашу модель EF, включив в нее таблицы поиска, добавить связи между таблицами, добавить [Включить] в класс метаданных (auto-gen'd) и позволить EF и RIA сделать это за вас. Может быть.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...