Асинхронная привязка колонок Silverlight - PullRequest
0 голосов
/ 11 августа 2010

У меня есть две разные базы данных в качестве источника для приложения Silverlight RIA.Они предоставляются через отдельные службы RIA.

Существует одна связь между базами данных, что означает, что у меня есть внешний ключ (без ограничений) между базами данных.Мои Сущности в настоящее время загружают это как Int32.Как мне соотнести это с фактическим отображаемым значением конечного пользователя из другой базы данных?

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

Ответы [ 2 ]

1 голос
/ 11 августа 2010

Вы можете также рассмотреть возможность использования атрибута ExternalReference.

Например,

public partial class SalesOrderHeader
{
   [ExternalReference]
   [Association("My_Custom_FK", "CustomerID", "CustomerID")]
   public Customer Customer { get; set; }
}

Таким образом, вы можете создать соединение между контекстами вашего домена RIA.Примером, помогающим выполнить эту работу, является решение Nikhil BookClub, в котором он проецирует типы сущностей домена в объекты, которые он возвращает в свои модели представлений.

Вы можете сделать то же самое, за исключением того, что вы бы преодолели разрыв между контекстами домена.

0 голосов
/ 11 августа 2010

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

После этого вы можете получить RIA Services для возврата результатов просмотра / хранимой процедуры ...

Таким образом, вы делаете только один звонок из Silverlight ...

...