停止WCF将空IColse反序列化为零容量数组

Mat*_*ton 5 wcf serialization entity-framework-4.1

我在使用WCF和Entity Framework 4.1 POCO对象时遇到问题(使用T4模板生成).我的基本问题是,当从客户端向服务发送POCO对象时,WCF将ICollection类型的成员变量反序列化为固定大小的数组.

在客户端,我可以告诉visual studio使用IList而不是T [] - 但我在服务器端看不到这样的选项.

这会导致几个问题无法解决,例如将这些对象持久化回数据库.

有没有办法告诉WCF将ICollection(或任何数组)反序列化的对象类型是什么?

Ken*_*ith 5

令我感到惊讶的是,更多的人没有遇到这个问题,因为当你试图在WCF上使用EF T4生成的POCO对象时,你会遇到困难.具体来说,我得到的错误是:

例外:"无法在实体类型Datalayer.Customers上设置字段/属性订单.有关详细信息,请参阅InnerException."

InnerException:"无法将项目添加到'Datalayer.Order []'类型的固定大小数组中."

无论如何,我能够提出的唯一解决方案是你提到的解决方案,即修改T4模板以使用HashSet而不是ICollection.不会让我觉得最干净,但它似乎有效.