Ciao Giuseppe,
giuseppe500 ha scritto:
Login failed for user 'Lenovo-PC\Giuseppe'.
Vuol dire semplicemente che la connection string non ha funzionato, perché non è stato possibile autenticarsi a Sql Express per accedere al db ifcClasses.DbIfc usando il tuo account di Windows.
Non ti so dire con precisione quale sia la causa. Potrebbe essere che l'autenticazione basata su account Windows non sia stata abilitata nella tua istanza di Sql Express oppure che il tuo utente di Windows (Lenovo-PC\Giuseppe) non abbia privilegi per accedere al database ifcClasses.DbIfc.
A proposito, hai già creato il database ifcClasses.DbIfc nella tua istanza di Sql Express, usando magari il programma Sql Server Management Studio?
giuseppe500 ha scritto:
so poco di sql server lo anticipo.
Ok. Prima di consigliarti di smanettare con db e privilegi, proviamo a modificare leggermente la tua connection string. Vediamo se il problema si risolve con questa modifica minima.
Data Source=.\\SQLEXPRESS;AttachDbFileName=|DataDirectory|\ifcClasses.DbIfc.mdf;Integrated Security=True;MultipleActiveResultSets=True
Ho sostituito Initial Catalog con AttachDbFileName perché così il database verrà collegato all'instanza di Sql Express all'avvio dell'applicazione, con tutti i privilegi necessari a far accedere il tuo utente di Windows.
Il file ifcClasses.DbIfc.mdf devi averlo aggiunto all'interno della cartella App_Data (se la tua è un'applicazione web) o nella cartella dell'eseguibile (se è un'applicazione per Windows).
Aggiungere un file mdf è semplice: dal Solution Explorer fai tasto destro su una cartella e clicca Aggiungi > Nuovo Elemento > Database Sql Server.
giuseppe500 ha scritto:
Poi sempre col generatore ho creato un dbcontext xon tutte le classi cosi:
1300 classi sono una bella quantità, non è corretto creare un solo DbContext per tutte quante. Non dico che non sia possibile (bisogna vedere le performance) ma si chiama Db
context non a caso. Tutte quelle classi apparterranno sicuramente a vari contesti, come vedo dalla
pagina Wikipedia di ifc (che non conoscevo). Ci sono classi che riguardano costruzioni, prodotti, processi, partecipanti, fasi e così via.
Dividerle in contesti più piccoli sembrerà un lavoraccio inizialmente ma poi ti ritroverai con vari modelli più gestibili con cui si può iniziare a lavorare.
Non so se volevi realizzare un'applicazione orientata ai dati costruita in maniera completamente dinamica ma, se così non fosse, la suddivisione in contesti è un'attività che non puoi/devi evitare.
giuseppe500 ha scritto:
ho pensato anche di suare mongo db per semplificare ma chiedo a voi se un idea del genere è possibile o è una pura fantasia alla fine.
Ricorda che non dovresti ripiegare su una tecnologia solo perché sembrano esserci difficoltà con quella che avresti preferito usare. Se scegli MongoDb è perché in questa situazione ha dei vantaggi e perché si adatta meglio al modello. Mi sembra che tu qui abbia dei dati ben strutturati e quindi - ad una prima occhiata - sembra più adatto un database relazionale come Sql Server.
Ma potrei sempre sbagliarmi, eh, io non so come sono fatte le classi.
Se delle 1500 classi solo poche hanno un'identità (mentre la maggior parte è composta da Value Objects) allora probabilmente valuterei anche MongoDb per memorizzare e leggere interi documenti anziché essere costretto a fare innumerevoli JOIN per ricostruire un grafo molto ramificato.
ciao,
Moreno
Modificato da BrightSoul il 15 agosto 2015 10.45 -