我有两个不同的数据库作为Silverlight RIA应用程序的源。它们通过单独的RIA服务公开。
数据库之间存在一种关系,这意味着我在数据库之间有一个外键(没有约束)。我的实体目前将其加载为Int32。我如何将其映射到另一个数据库的实际最终用户显示值?
似乎值转换器需要同步操作。此外,DomainDataSource.LoadedData
中的任何异步调用都将导致数据源无限期地保持忙碌状态。
答案 0 :(得分:1)
您还可以考虑使用ExternalReference属性。
例如,
public partial class SalesOrderHeader
{
[ExternalReference]
[Association("My_Custom_FK", "CustomerID", "CustomerID")]
public Customer Customer { get; set; }
}
通过这种方式,您可以在RIA域上下文之间建立连接。有助于实现这项工作的一个例子是Nikhil的BookClub解决方案,他将域实体类型投射到他返回到视图模型的对象中。
你可以做同样的事情,除非你要缩小域上下文之间的差距。
答案 1 :(得分:0)
根据您的方案的详细信息,您可以在一个数据库中创建视图或存储过程,该数据库将跨两个数据库运行查询并返回单个结果集。
然后,您可以让RIA服务返回视图/存储过程的结果......
这样你只能从Silverlight拨打一个电话......