我正在创建silverlight应用程序并实现MVVM模式。在我的视图模型中,我想从RIA服务域类中获取数据。通过以下代码
LoadOperation<DimensionDTO> loadOp = this.parametersDomainContext.Load(this.parametersDomainContext.GetDimensionDTOQuery());
List<DimensionDTO> Dimensions = LoadOperation.Entities as List<DimensionDTO> ;
虽然RIA服务正在返回数据,但在第二行调试器中显示实体计数= 0
据我说这是因为RIA服务的异步调用。在从ria服务返回数据之前执行第二行。我怎样才能让这两条线同步。我的意思是在加载操作完成时应该执行第二行。
答案 0 :(得分:2)
[Query]
public IQueryable<DimensionDTO> GetDimensionDTOs()
{
return this.ObjectContext.DimensionDTOs;
}
您的Silverlight代码中的
DomainService1 DS = new DomainService1();
LoadOperation<DimensionDTO> loadOp = DS.Load(DS.GetDimensionDTOsQuery());
loadOp.Entities ; // for Assign to IEnumerable<DimensionDTO>
或
loadOp.Completed += new EventHandler((s,e)=>{
for(DimensionDTO item in loadOp.Entities )
{
// add entity to your list for List<DimensionDTO>
}
});