Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 共享合同WCF数据服务_C#_Shared Libraries_Odata_Wcf Data Services - Fatal编程技术网

C# 共享合同WCF数据服务

C# 共享合同WCF数据服务,c#,shared-libraries,odata,wcf-data-services,C#,Shared Libraries,Odata,Wcf Data Services,有几种方法可以做到这一点。我可以序列化linq查询,但是支持表达式树序列化的OSS项目似乎没有得到很好的支持 是否有更常规的方法来执行以下操作: // Create the DataServiceContext using the service URI. NorthwindEntities context = new NorthwindEntities(svcUri); 但不使用实体生成util。基本上,我想使用类似于以下伪代码的东西-请注意共享的IRepository契约: new Cha

有几种方法可以做到这一点。我可以序列化linq查询,但是支持表达式树序列化的OSS项目似乎没有得到很好的支持

是否有更常规的方法来执行以下操作:

// Create the DataServiceContext using the service URI.
NorthwindEntities context = new NorthwindEntities(svcUri);
但不使用实体生成util。基本上,我想使用类似于以下伪代码的东西-请注意共享的IRepository契约:

new ChannelFactory<IRepository<MyEntity>>(myBinding, myUri).CreateChannel()
newchannelfactory(myBinding,myUri).CreateChannel()
另外,我不希望导出整个数据集。我只是希望我的常规服务公开IQueryable操作。通过这种方式,IQueryable接口可以更紧密地耦合到业务逻辑,而不是作为一个独立的数据服务


我接受OSS解决方案,但我希望它稳定、轻量级、主动、支持良好且经常更新。

如果您想实现存储库模式和大量定制业务逻辑,Web API可能是您短期内的最佳选择。在我的WCF数据服务优先列表中,为这两个请求获得更好的支持是非常重要的,但事实是,我们目前在这方面相当欠缺

Web API的局限性将是OData支持的充分性,这可能会随着时间的推移而出现。WCF数据服务的局限性将是易于插入业务逻辑/软件模式,这可能会随着时间的推移而改进


也就是说,如果您有一个只读服务,反射提供程序将完成您想做的几乎所有事情。

我考虑过这一点,但要将Web API用于Web应用程序之外的任何事情似乎有点困难。例如WPF/Silverlight,或者只是在其他服务中。我的理解错了吗?您是否还有到反射提供程序的链接?只读svc听起来是个不错的开始。