DarioSantarelli.Blog("UgiDotNet");

<sharing mode=”On” users=”*” />
posts - 176, comments - 105, trackbacks - 3

My Links

News


This is my personal blog. These postings are provided "AS IS" with no warranties, and confer no rights.




Tag Cloud

Archives

Post Categories

My English Blog

LINQ to SQL: alcune utili "issues"

Giusto un promemoria circa alcune risorse MSDN molto utili per lo sviluppo su LINQ to SQL:

Si possono trovare delle sintetiche informazioni di comune utilità, alcune delle quali non così conosciute. Cito alcune issues significative:

  • Nei progetti Class-Library, il designer OR crea una connection string anche nell'app.config. Ora, poiché nei progetti Class Library il file app.config viene ignorato, LINQ to SQL utilizzerà la connection string fornita a design-time (es. Settings). Di conseguenza, modificare manualmente l'app.config non permette di cambiare il DB a cui connettersi.
  • LINQ to SQL non supporta operazioni "Cascade DELETE". Possiamo dunque risolvere la questione da codice oppure impostando la regola ON DELETE CASCADE nel vincolo di chiave esterna.
  • La concatenazione di stringhe su operandi mappati da [n]text e altri da [n][var]char NON è supportata.
  • LINQ to SQL fornisce due modi per elaborare correttamente un valore ritornato da una stored procedure:
    • dando un nome all'output (select max(c) AS MaxResult from t where ...) della stored procedure
    • specificando esplicitamente un OUTPUT parameter (es. @result int OUTPUT .... select @result = MAX(c) from t where ...)
  • La generazione di codice in LINQ to SQL supporta la serializzazione tramite DataContractSerializer ma NON XmlObjectSerializer o BinaryFormatter.
  • LINQ to SQL evita nativamente le SQL injection tradizionali (ovvero quelle generate dalla concatenzione dell' input dell'utente con statement SQL maliziosi) poiché nelle query autogenerate utilizza i SqlParameter. In questo modo lo user input viene automaticamente convertito in un valore ammissibile di un parameter.

Technorati tags:  LINQ,  SQL

Print | posted on sabato 26 luglio 2008 18:27 |

Comments have been closed on this topic.

Powered by:
Powered By Subtext Powered By ASP.NET