【问题标题】:Wcf Data Service ClientWcf 数据服务客户端
【发布时间】:2014-01-07 09:12:39
【问题描述】:

我刚刚开始使用 Wcf 数据服务来公开实体框架数据库。我对 WCF 非常熟悉,但对数据服务并不熟悉。

我正在尝试创建客户端,而无需运行程序并添加服务引用。

这是因为数据库尚未创建或未完成,并且还有其他开发人员正在处理此问题。

我已经研究过使用 DataService<T>.AttachHost() 方法,但这需要 IDataServiceHost 显然 DataServiceHost 没有实现。

有没有人知道实现这一点的方法,还是我坚持添加服务参考。

谢谢

编辑

只是为了解释一下,因为经过反思,我的问题措辞不佳。

这是网络设置的示例

SQL 服务器 | 防火墙 |应用服务器 | 防火墙 |客户

所以在 SQL SERVER (MS-SQL) 上有一个数据库

WcfDataService 在 APP SERVER 的 1234 端口上运行。WcfDataService 通过继承 DataService<MyContext> 并托管在 Windows 服务中实现

客户端需要连接到 DataService,使用类似的端点 - htp://app-server:123465/

如何创建一个类,最好使用关联的接口,这样我就可以对连接到 DataService 并使用其方法的单元进行单元测试。

谢谢

【问题讨论】:

  • 您可以使用 DataSvcUtil.exe 工具从实体模型生成代码文件,而无需在任何地方托管服务。请参阅msdn.microsoft.com/en-us/library/dd756369%28v=vs.110%29.aspx 了解更多信息。
  • 应该说我们先用code,所以entites是POCO,有DbContext。这种设置是否可以使用这种方法,因为我不确定 .csdl 文件是什么?
  • .csdl 文件只是在托管服务时公开的元数据文件,它是您的实体模型的表示。添加服务引用使用该文件生成客户端 DataServiceContext 代码。我搜索了很长时间,但没有找到从代码优先模型生成 DataServiceContext 代码的方法。
  • 您可能有幸查看了 odata 团队不久前发布的 t4 模板,它们可能会根据您的需要进行调整:blogs.msdn.com/b/astoriateam/archive/2012/07/02/…
  • 谢谢 ChrisO 我会调查 T4,我已经更新了这个问题,以防万一有什么不清楚的地方。

标签: c# wcf entity-framework odata wcf-data-services


【解决方案1】:

听起来您只是在问如何创建客户端上下文。您可以使用 DataServiceContext。

例子:

var serviceRoot = new Uri("http://app-server:123465/");
var context = new DataServiceContext(serviceRoot, DataServiceProtocolVersion.V3);

** 除此之外还有更多工作......但这应该会让你走上正确的道路。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多