2011-08-26 21 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屬性解決了問題。 –