2010-08-11 1 views
0

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

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

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

ответ

1

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

Например,

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

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

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

+0

Именно то, что я искал! Спасибо за ответ. – jhappoldt

0

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

Вы можете получить RIA Services, чтобы вернуть результаты/хранимой процедуры просмотра ...

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

 Смежные вопросы

  • Нет связанных вопросов^_^