Pentru a utiliza în întregime LinqToSql într-o aplicație ASP.net 3.5, este necesar să creați DataContext designer în VS 2008). Din perspectiva UI, DataContext este un design al secțiunilor bazei de date pe care doriți să le expuneți prin LinqToSql și este un element integru în configurarea funcțiilor ORM ale LinqToSql.
Întrebarea mea este: Înființez un proiect care folosește o bază de date vastă în care toate mesele sunt interconectate într-un fel prin chei externe. Prima mea înclinație este de a face o clasă imensă de dateContext care modelează întreaga bază de date. În acest fel aș putea în teorie (deși nu știu dacă acest lucru ar fi necesar în practică) să utilizeze conexiunile Cheii Externe generate de LinqToSql pentru a merge ușor între obiectele conexe din codul meu, inserați obiecte asemănătoare etc.
Cu toate acestea, după ce i-am dat niște gânduri, mă gândesc acum că ar putea fi mai logic să creez mai multe clase DataContext, fiecare dintre ele referindu-se la un anumit spațiu de nume sau o secțiune logică interconectată în baza mea de date. Principala mea preocupare constă în faptul că instanțierea și eliminarea unei clase imense DataContext tot timpul pentru operații individuale care se referă la anumite domenii ale bazei de date ar impune o impunere inutilă asupra resurselor aplicației. În plus, este mai ușor să creați și să gestionați fișiere mai mici de date decât unul mai mare. Lucrul pe care l-aș pierde este că ar exista unele secțiuni îndepărtate ale bazei de date care nu ar fi navigabile prin LinqToSql (chiar dacă un lanț de relații le conectează la baza de date actuală). În plus, ar exista unele clase de tabele care ar exista în mai mult de un DataContext.
Orice gânduri sau experiență cu privire la faptul că mai multe dateContexturi (care corespund DB-urilor) sunt potrivite în locul (sau în plus față de) unei clase de DateContext foarte mari (corespunzătoare întregului DB)?