实体框架T4 POCO对象在WCF中引发异常

时间:2011-08-16 02:52:45

标签: wcf entity-framework poco

这些对象具有ICollection<>

类型的集合

如果我将对象图从客户端传递到服务器,则会抛出以下异常:

System.NotSupportedException was unhandled by user code
  Message=Collection was of a fixed size.
  Source=mscorlib

T4模板生成的修正代码中发生了这种情况。似乎集合在服务器上被反序列化为数组,因此无法修改。有没有办法指定序列化程序应该使用的类型?

2 个答案:

答案 0 :(得分:5)

我强烈建议您不要在服务范围内使用POCO课程。创建一组单独的类来模拟要通过线路发送和接收的数据(数据传输对象 - DTO),并使用automapper之类的工具在DTO和POCO类之间移动数据

基本上,您最终会将服务的消费者与服务的内部概念模型联系起来,这意味着您在更改实施时受到限制,因为您需要避免破坏您的客户

答案 1 :(得分:2)

尝试使用以下属性

[ServiceKnownType(typeof(List<string>))]

如果这不起作用,或许可以尝试使用IList<T>,如果在您的情况下可以使用