1 messaggio dal 19 agosto 2010
Salve a tutti.
Usando sotto VS2010 il template T4 per generare le POCO Entitities nell'ADO.Net Entity Designer, le classi generate sono appunto completamente "pulite" da attributi per renderle quanto più utilizzabili da piattaforme e tecnologie di servizi diverse.
Esiste però un modo "automatico" per rendere queste classi direttamente utilizzabili da un servizio WCF oppure ogni membro della classe deve essere decorato dall'attributo [DataMember] e la classe segnata da [DataContract]?

Ci sono delle indicazioni su "buone pratiche" per strutturare un'applicazione ASP.Net n-tier usando le ADO.Net Entities, oggetti POCO derivati e WCF?
Generalmente dal .net 3.5sp1 le classi non devono essere marcate per poter essere serializzate con il dataContractSerializer. Se non ha attributi serializzerà tutti i membri pubblici.
Questo però è un problema perché difficilmente vuoi serializzare tutti i membri. Oltre alle logiche vi è un problema di riferimenti circolari che il DataContractSerializer non digerisce e non avrebbe senso nell'xml.
Quindi per raggiungere il tuo scopo dovresti modificare il t4 e aggiungere i template. Potresti aggiungere informazioni custom all'edmx per indicare se un membro dev'essere serializzato o meno e utilizzare tale informazione t4.
Insomma la cosa non è semplice perciò per questo motivo e per una separazione dallo strato dei servizi al tuo domain model, si è soliti usare DTO, cioè delle classi usate specificamente con i servizi, spesso aventi gli stessi membri del tuo domain model.

Ciao

Il mio blog
Homepage

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.