8 messaggi dal 23 novembre 2002
Ciao a tutti.
Sto sviluppando una nuova applicazione e sono intenzionato ad utilizzare
ADO.NET Entity Framework. Il database che sta alla base contiene circa 800
tabelle. Ho letto da qualche parte che l'EF gestisce in maniera ottimale strutture con non più di 120 tabelle oltre le quali le prestazioni decadono. Sarei quindi obbligato ad utilizzare più edmx ma mi risulta difficile
perchè ogni tabella è direttamente o indirettamente relazionata con tutte le
altre e non so dove "rompere" il data model. Se oltretutto riuscissi a suddividere in maniera accettabile il data model in diversi file edmx avrei modo di mantenere le proprietà di navigazione fra classi relazionate ma provenienti da differenti data contexts?
Per essere più chiaro, se la classe Customer è definita dal data context CustEntities e la classe Orders dal data context OrderEntities, tenendo conto che un Customer può avere più Orders potrei scrivere una cosa del genere?

If objCustomer.Orders.Count > 0 Then

Oppure cose del genere?

Dim objOrd as new Order
Dim objCust as new Customer
objOrd.Number = 1
objCust.Code = 1
objOrd.Customer = objCust

Su quale data context richiamo il SubmitChanges?

Se volessi inoltre spingermi più avanti e pensare ad uno scenario dove per esempio i dati dei clienti stanno in un database SQL Server mentre quelli degli ordini in un altro database Oracle?

Qualche suggerimento?
Grazie mille
Ciao
3.168 messaggi dal 06 settembre 2002
Contributi | Blog
Ciao,

Non sono al corrente di questo limite di 120 tabelle. dove l'hai letto?
Cmq non puoi mantenere relazioni del genere perchè EF non è in grado di gestirle bene, almeno che tu non faccia barbatrucchi pesanti che non so nemmeno se funzionino.

HTH

Nothing can be born from hartred

Stefano (SM15455) Mostarda
http://blogs.aspitalia.com/SM15455
Rome Italy
Il limite sopra citato è reperibile all'indirizzo

http://forums.microsoft.com/Forums/ShowPost.aspx?PostID=3757588&SiteID=1

Anche se, secondo me, parla solo del limite nelle performance del designer.

Per quanto riguarda la gestione di EF su un numero alto di tabelle ho trovato i seguenti post

http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=3518736&SiteID=1
http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=3764839&SiteID=1

Sarei comunque interessato ad ulteriori discussioni a tale proposito.

- Andrea Bianchi -

- Andrea Bianchi -
Site:http://www.bianchiandrea.com
Beh... io penso che impazzirei ad usare il designer già con molte meno tabelle
8 messaggi dal 23 novembre 2002
Ciao,
come ha scritto Andrea il limite di 120 tabelle è indicato per il designer (scusatemi se non mi sono spiegato meglio). Tra l'altro non è un vero e proprio limite. Diciamo che oltre le 120 tabelle le prestazioni iniziano a decadere.
Questo è un link con alcune info. Seguite anche i vari collegamenti presenti nella pagina:
http://oakleafblog.blogspot.com/2008/08/entity-framework-instantiation-times.html

Quello che mi spaventa è il fatto di non poter utilizzare il designer (anche se effettivamente, come dice Cradle, anche col designer gestire centinaia di tabelle non è da considerarsi un gran divertimento).
Mettere le mani ai files XML con una struttura molto grande mi fa venire voglia di cambiare lavoro :)
Il top sarebbe avere la possibilità di avere diverse view del data model, ognuna gestita separatamente dalle altre. Un pò come lavora il designer dei diagrammi di SQL Server.
Grazie a tutti.
Ciao
coffinardi wrote:
Il top sarebbe avere la possibilità di avere diverse view del data model, ognuna gestita separatamente dalle altre. Un pò come lavora il designer dei diagrammi di SQL Server.

hai provato ad aprire un desiderata su connect, così che eventualmente ne tengano conto per una futura versione di VS?

Daniele Bochicchio | ASPItalia.com | Libri
Chief Operating Officer@iCubed
Microsoft Regional Director & MVP
8 messaggi dal 23 novembre 2002
Ciao.
Dal titolo sembra molto interessante.
Grazie mille.

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.