Lo sappiamo tutti: LINQ To SQL è stato concepito appositamente con delle limitazioni. Mapping 1:1 con il database (con conseguente obbligatorietà di avere una classe di correlazione per il mapping many-to-many), ereditarietà che non supporta tutti e 3 i modelli, classi apposite per gestire riferimenti a entità (EntitySet e EntityRef), ecc ecc.
Dal mio punto di vista, la prima e la seconda limitazione sono accettabili per un tool che nasce con lo scopo di gestire progetti semplici. La terza, tuttavia, proprio non la accetto. Per motivi di Lazy Loading e riferimenti al DataContext, EntitySet non è serializzabile. Questo significa che se in un servizio WCF proviamo a esporre un'entità Fattura che ha una EntitySet di oggetti DettaglioFatttura, riceviamo una bella eccezione di serializzazione a runtime.
Il workaround è presto trovato, basta evitare di mettere il DataMember sulla proprietà in questione e farne una copia che espone una lista generica di oggetti DettaglioFattura, e non un EntitySet, preoccupandosi di valorizzarla correttamente. Facendo così i problemi si risolvono, ma il disappunto rimane per una cosa che poteva essere fatta meglio e non costringerci al workaround.
P.S. A nessun Ughetto è stato fatto male durante la stesura di questo post, anzi, è lui che ha fatto del male a me :D
Stay Tuned...
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
- Entity Framework è lento! mmmmh, probabilmente sei tu che lo stai usando male!, il 7 ottobre 2022 alle 10:55
- Cosa penso di ASP.NET vNext, il 3 settembre 2014 alle 09:00
- E così AngularJS e DurandalJS convergono..., il 7 maggio 2014 alle 11:51
- Usare fiddler per simulare le risposte da un servizio, il 28 ottobre 2013 alle 08:00
- Tip: cosa fare quando Entity Framework Code-First Migrations smette di funzionare, il 18 gennaio 2013 alle 11:04
- Visual Studio 11 beta: le novità di Entity Framework 5.0 e WCF 4.5, il 2 marzo 2012 alle 23:08