EDM -> POCO -> WCF (.NET4) But transferring Collections causes IsReadOnly set to TRUE

Posted by Gary B on Stack Overflow See other posts from Stack Overflow or by Gary B
Published on 2010-03-19T17:04:45Z Indexed on 2010/03/22 20:11 UTC
Read the original article Hit count: 821

Filed under:
|
|
|

Ok, this may sound a little 'unorthodox', but...using VS2010 and the new POCO t4 template for Entity Framework (http://tinyurl.com/y8wnkt2), I can generate nice POCO's. I can then use these POCO's (as DTO's) in a WCF service essentially going from EDM all the way through to the client. Kinda what this guys is doing (http://tinyurl.com/yb4bslv), except everything is generated automatically. I understand that an entity and a DTO 'should' be different, but in this case, I'm handling client and server, and there's some real advantages to having the DTO in the model and automatically generated.

My problem is, that when I transfer an entity that has a relationship, the client generated collection (ICollection) has the read-only value set, so I can't manipulate that relationship. For example, retrieving an existing Order, I can't add a product to the Products collection client-side...the Products collection is read-only.

I would prefer to do a bunch of client side 'order-editing' and then send the updated order back rather than making dozens of server round trips (eg AddProductToOrder(product)). I'd also prefer not to have a bunch of thunking between Entity and DTO. So all-in-all this looks good to me...except for the read-only part.

Is there a solution, or is this too much against the SOA grain?

© Stack Overflow or respective owner

Related posts about wcf

Related posts about ef4