Domanda

Sto seguendo vagamente un eccellente serie di post di blog di Kazi Manzur Rashid come esercizio di apprendimento per imparare a imparare implementare alcuni nuovi (almeno per me) modelli di progettazione, ma ho problemi sin dall'inizio.

Ho praticamente copiato il suo codice per le classi Database , RepositoryBase e RepositoryBaseTests , ma quando provo ad eseguire i test, ricevi un messaggio di errore che dice

  

Impossibile creare l'istanza della classe Booking.Infrastructure.EntityFramework.Repositories.Tests.RepositoryBaseTests. Errore: System.Reflection.TargetInvocationException: l'eccezione è stata generata dalla destinazione di una chiamata. --- > System.ArgumentException: il formato della stringa di inizializzazione non è conforme alle specifiche a partire dall'indice 0 ..

Tramite il debugger ho verificato che l'eccezione viene generata sul costruttore per la classe Database , che assomiglia a questa:

public Database(
    IConfigurationManager configurationManager, 
    string connectionstringName)
: base(
    GetConnectionString(configurationManager, connectionstringName), 
    "BookingEntities")
{ // Nothing happens here }

L'errore viene generato quando si chiama il costruttore base e se codifico i valori che sto inviando, sembrerebbe così:

: base("Dummy connStr", "BookingEntities")

Perché non funziona?

È stato utile?

Soluzione

" Dummy connStr " non è una stringa di connessione EF valida.

Una stringa di connessione EF valida è simile a:

connectionString="metadata=res://*/Data.Model.csdl|res://*/Data.Model.ssdl|res://*/Data.Model.msl;provider=System.Data.SqlClient;provider connection string="Data Source=SERVERNAME\SQLDEV2008;Initial Catalog=DBName;Integrated Security=True;MultipleActiveResultSets=True""
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top