Ciao Giuseppe,
cerchiamo di procedere a piccoli passi altrimenti non capisco più nulla perché qui i problemi continuano ad accumularsi. Le migrations per il momento lasciamole da parte.
Per il momento cerchiamo solo di creare il database con tutte le sue tabelle.
giuseppe500 ha scritto:
ho inserito un server da visual studio con il suo nome e testato la connessione, riuscita
Benissimo, hai creato un database a mano e poi hai verificato che la connection string ti permette di collegarti correttamente.
Vai quindi ad usarla nella tua applicazione. Nel file .config metti questo (ovviamente sostituisci i puntini di sospensione con la connection string che hai testato).
<connectionStrings>
<add name="DbIfc" connectionString="..." provider="System.Data.SqlClient" />
</connectionStrings>
Per favore,
elimina anche questo costruttore del tuo dbcontext DbIfc.
public DbIfc():base("EFDbContext") { }
In questo modo il dbcontext andrà a cercare nel file config una connection string omonima e la troverà dato che l'hai appena aggiunta.
A questo punto, anziché mandare in esecuzione il codice della tua applicazione che importa gli xml, fai semplicemente questo.
Database.SetInitializer<DbIfc>(null);
using (var ctx = new DbIfc())
{
var ddl = ((IObjectContextAdapter)ctx).ObjectContext.CreateDatabaseScript();
File.WriteAllText(@"C:\cartella\tuofile.sql", ddl);
}
Al posto di
C:\cartella\tuofile.sql tu ovviamente indica un percorso valido ad un file su cui l'applicazione possa scrivere.
All'interno di quel file troverai il DDL, ovvero lo script di creazione del database.
Vai in Visual Studio o in Sql Server Management Studio e lancia questo script per ricreare tutte le tabelle nel db che avevi creato prima.
Te lo faccio fare da Visual Studio o da SSMS perché non sono sicuro che la tua connection string ti consenta di accedere con sufficienti privilegi per creare un db e tutti i suoi oggetti.
Inoltre, in questo modo, riesci a determinare quanto tempo richiede questa fase.
A creazione completata, il tuo dbcontext non avrà la necessità di ricreare il database e quindi potrai procedere con l'importazione delle entità.
ciao,
Moreno
EDIT: Aggiunto Database.SetInitializer<MyContext>(null); altrimenti il contesto prova a creare il db lo stesso, invece vogliamo solo ottenere lo script ddl.
Modificato da BrightSoul il 03 gennaio 2016 14.20 -