上一篇介绍了ViewModel,下面介绍一下结构中RiaService。

在.net 4.0中,为我们提供了一个新的Ria服务:Domain Service,主要用于处理SilverLight与服务端的通信问题。以往我们在处理这方面的问题时,首先想到的是用WCF、Web Service等方式来实现,所以在处理过程中还需要去考虑通信方面的问题。但有了Domain Service后,我们不用再去关心这方面的问题,它会自动帮我们生成相应的通信协议与代码,将我们所提供的服务曝露给Silverlight客户端。

 

DtoModels,用于存放于View相对应的视图模型类;

TesstDomainService,用于实现RiaService的Domain Service类

代码如下:

[EnableClientAccess()]
    public class TestDomainService : DomainService  // LinqToEntitiesDomainService<TestEntities>
    {

        // TODO: Consider
        // 1. Adding parameters to this method and constraining returned results, and/or
        // 2. Adding query methods taking different parameters.
        private IProduction _iProduction;   

        public TestDomainService()
        {
            _iProduction = new Production();
        }

        public IQueryable<ProductionDataDto> GetProductionData()
        {
             List<ProductionData> viewModel = _iProduction.GetProductionData();
            IEnumerable<ProductionDataDto> viewModelDto = (from table in viewModel select new ProductionDataDto())
            return viewModelDto.AsQueryable();
        }
    }

这里,我们继承自DomainService,这样就可以实现WCF的功能。同时定义了一个IProduction接口,通过它来实现数据服务功能,我们可以通过Ado.net entity data或者Linq to database等方式来与数据库进行交互。ProductionDataDto为与ProductionData相对应的视图模型类,在从数据服务层返回数据实体模型ProductionData后,需要转换为页面所需要的视图模型。

posted on 2010-03-15 01:15  yo  阅读(1081)  评论(0编辑  收藏  举报