2011-08-26 39 views
1

我已经制作了一个具有继承性的简单EF4模型。实体B从实体A派生。
我正在使用T4 POCO模板。 (VS 2010)带有继承错误的T4 POCO生成 - 派生类不会在客户端生成

在我的Silverlight客户端中,向WCF服务添加服务引用时,只有基类在服务名称空间中生成。派生类将被忽略。

这个bug在这里提到:http://forums.silverlight.net/p/157316/352167.aspx
但答案中的链接不会导致任何地方。

该解决方案提到您可以通过添加一些属性来解决此问题。或者,是否有官方的错误修复?

回答

1

这不是一个错误。这是常见的行为。您的服务操作返回基类,以便服务描述只知道基类,直到您指示它也使用派生类型为止。最常见的解决方案是在您的基类上使用KnownType属性或在服务或操作上使用ServiceKnownType属性。另一种解决方案(在WCF4中使用DataContractResolver) - MSDN magazine contains nice article关于数据协定继承。

+0

感谢KnowType属性的例子!在基类中添加KnownType属性解决了问题。 –