惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

J
Java Code Geeks
M
MIT News - Artificial intelligence
D
Docker
S
SegmentFault 最新的问题
B
Blog
Apple Machine Learning Research
Apple Machine Learning Research
博客园_首页
博客园 - 【当耐特】
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
The GitHub Blog
The GitHub Blog
Y
Y Combinator Blog
腾讯CDC
阮一峰的网络日志
阮一峰的网络日志
U
Unit 42
C
Check Point Blog
GbyAI
GbyAI
美团技术团队
Recent Announcements
Recent Announcements
F
Fortinet All Blogs
量子位
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
V
Visual Studio Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
G
Google Developers Blog

博客园 - yo

Silverlight 缺陷 - yo - 博客园 SilverLight Controls WF 4.0 中 Persistence 异常 - yo SilverLight框架初探-View - yo - 博客园 SilverLight框架初探-ViewModel SilverLight框架初探 与客户“调情” AG_E_PARSER_BAD_PROPERTY_VALUE 定义属于自己的Routing 数据契约的序列化 WCF客户端配置问题 关闭EXCEL进程 母版页中控件ID获取 - yo - 博客园 Reportviewer - Error: ASP.NET session has expired - yo SQL CLR C# DLL动态调用 Sharepoint List faults - yo 出错页面webpar的t删除 quickpart
SilverLight框架初探-RiaService
yo · 2010-03-15 · via 博客园 - yo

上一篇介绍了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后,需要转换为页面所需要的视图模型。