user380689
user380689

Reputation: 1794

Entity Framework T4 POCO objects raising exception in WCF

These objects have collections of type ICollection<>

If I pass an object graph from client to server it throws the following exception:

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

Which is occurs in the fixup code the T4 template has generated. It seems the collections are being deserialized on the server as arrays and so can't be modified. Is there a way to specify the type the serializer should use?

Upvotes: 1

Views: 847

Answers (2)

Richard Blewett
Richard Blewett

Reputation: 6109

I would strongly recommend that you don't use the POCO classes on your service boundary. Create a separate set of classes to model the data you want to send and receive across the wire (Data Transfer Objects - DTOs) and use a tool like automapper to move data between the DTOs and your POCO classes

Essentially you end up tying the consumers of your service to your service's internal conceptual model which means you become constrained in changing your implementation because you need to avoid breaking your clients

Upvotes: 5

James Harris
James Harris

Reputation: 1914

Try using the following attribute

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

If that doesn't work, perhaps try using IList<T> if that is possible in your situation

Upvotes: 2

Related Questions