加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 使用Entity Framework从WCF RIA服务调用另一个WCF数据服务

发布时间:2020-12-15 17:21:12 所属栏目:百科 来源:网络整理
导读:我想使用WCF RIA Services来访问Silverlight应用程序中的数据.但是,数据不是从本地数据存储提供的,而是从另一个WCF数据服务(我正在访问外部CRM系统)提供的.我不想直接访问外部服务,因为我必须在我的RIA服务中混搭来自多个数据源的数据. 这可能是实现这一目标
我想使用WCF RIA Services来访问Silverlight应用程序中的数据.但是,数据不是从本地数据存储提供的,而是从另一个WCF数据服务(我正在访问外部CRM系统)提供的.我不想直接访问外部服务,因为我必须在我的RIA服务中混搭来自多个数据源的数据.

这可能是实现这一目标的最简单方法吗? C#中的一些源代码将不胜感激.

编辑:
中心问题是如何以简单的方式从外部服务填充实体.有一个related question,但答案并没有解决我的问题.

解决方法

我认为您的混淆可能是用于添加RIA服务的Visual Studio向导假定您将使用EntityFramework来处理数据.我不认为您想要从第二个WCF服务的数据中创建EF模型.相反,创建您的RIA服务以直接从DomainService派生并覆盖您需要的方法.在每个查询方法中,只需查询远程服务并将结果返回给Silverlight客户端.为了使RIA服务魔术代码生成起作用,您需要在应用程序中定义一组DTO对象,以包装远程WCF服务的结果.

这是一个快速的样本.注意 – 我刚刚说明了我的意思.您需要调用正在使用的实际服务并构建错误处理,输入检查等.

namespace YourApp.Web 
{ 
    [EnableClientAccess] 
    public class WcfRelayDomainService : DomainService 
    { 
        public IQueryable<Restaurant> GetRestaurants() 
        { 
            // You should create a method that wraps your WCF call
            // and returns the result as IQueryable;
            IQueryable<MyDto> mydtos = RemoteWCF.QueryMethod().ToQueryable();
            return mydtos; 
        } 
        public void UpdateDTO(MyDto dto) 
        { 
            // For update or delete,wrap the calls to the remote
            // service in your RIA services like this.
            RemoteWCF.UpdateMethod(dto);
        }
    }
}

希望能帮到你!有关更多提示,请参阅How to set up RIA services with Silverlight 4.0 and without EF.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读