【问题标题】:How to make WCF Data Service's entities implement an interface?如何让 WCF 数据服务的实体实现接口?
【发布时间】:2012-11-20 22:14:38
【问题描述】:

我有一个从 .tt 文件生成的 EF CF 模型,所以每个实体都有一个接口,比如IEntity

然后我有一个暴露模型的 WCF 数据服务。

但是当我向该服务添加服务引用时,生成的实体没有这样的接口,所以我不能对它们使用泛型。

我该如何解决这个问题?

【问题讨论】:

  • 为什么不在客户端重复使用相同的模型?
  • @WiktorZychla:那么使用 WCF DS 将毫无意义。但我仍然想使用它(或者我不明白你的问题,对不起)。不要公开模型,而是提供对它的 REST 访问。
  • 我认为 Wiktor 只是要求共享客户端和服务器类型。您可以将它们放在单独的程序集中,并在客户端和服务器中使用。您仍然可以使用 WCF DS,因为您想通过网络在 odata 中序列化/反序列化这些类型。换句话说,您无需添加服务引用,而是使用共享程序集中的相同类型,并同时使用客户端和服务器中的这些类型。
  • @Pratik:您介意举一个工作示例作为答案吗?我很乐意尝试并接受它是否对我有用。谢谢!

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


【解决方案1】:

Here 详细解释了为什么您没有在客户端获得 IEntity。如果共享程序集的方法不适合您,您仍然可以执行以下操作。而不是 IEntity 创建 EntityBase。比添加到这个属性,如[KnownType(typeof(MyEntity1))], [KnownType(typeof(MyEntity2))] 等等。您正在使用 tt,因此您将能够自动生成具有所有模型类型的 EntityBase 和 knowntype 属性。与在客户端相比,您将获得所有实体的基类。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-23
    • 2012-06-13
    • 2011-02-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多