C# 如何打造WCF数据服务&x27;谁的实体实现了一个接口?

C# 如何打造WCF数据服务&x27;谁的实体实现了一个接口?,c#,wcf,entity-framework,interface,wcf-data-services,C#,Wcf,Entity Framework,Interface,Wcf Data Services,我有一个从.tt文件生成的EF CF模型,所以每个实体都有一个接口,比如说ienty 然后我有一个WCF数据服务来公开模型 但是当我向这个服务添加服务引用时,结果实体没有这样的接口,所以我不能对它们使用泛型 如何解决这个问题?详细解释了为什么您无法获得客户端的权限。如果共享程序集的方法不适合您,您仍然可以执行以下操作。创建EntityBase而不是Entityity。然后添加诸如[KnownType(typeof(MyEntity1))]、[KnownType(typeof(MyEntity2)

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

然后我有一个WCF数据服务来公开模型

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


如何解决这个问题?

详细解释了为什么您无法获得客户端的权限。如果共享程序集的方法不适合您,您仍然可以执行以下操作。创建EntityBase而不是Entityity。然后添加诸如
[KnownType(typeof(MyEntity1))]、[KnownType(typeof(MyEntity2))]
等属性。您使用的是tt,因此您将能够通过twick自动生成所有模型类型的EntityBase和knowntype属性。而在客户端上,您将获得所有实体的基类。

详细解释了为什么您无法在客户端上获得属性。如果共享程序集的方法不适合您,您仍然可以执行以下操作。创建EntityBase而不是Entityity。然后添加诸如
[KnownType(typeof(MyEntity1))]、[KnownType(typeof(MyEntity2))]
等属性。您使用的是tt,因此您将能够通过twick自动生成所有模型类型的EntityBase和knowntype属性。在客户端,您将获得所有实体的基类。

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