Question

Je suis en train de suivre vaguement un excellente série d'articles de blog de Kazi Manzur Rashid comme exercice d'apprentissage pour apprendre à implémenter de nouveaux modèles de conception (pour moi au moins), mais je commence à avoir des problèmes.

J'ai essentiellement copié son code pour les classes Database , RepositoryBase et RepositoryBaseTests , mais lorsque j'essaie d'exécuter les tests, obtenir un message d'erreur disant

  

Impossible de créer une instance de la classe Booking.Infrastructure.EntityFramework.Repositories.Tests.RepositoryBaseTests. Erreur: System.Reflection.TargetInvocationException: une exception a été levée par la cible d'un appel. --- > System.ArgumentException: le format de la chaîne d'initialisation n'est pas conforme à la spécification commençant à l'index 0 ..

Grâce au débogueur, j'ai vérifié que l'exception est levée sur le constructeur de la classe Database , qui ressemble à ceci:

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

L'erreur est générée lors de l'appel du constructeur base et si je codais en dur les valeurs que je suis en train d'envoyer, cela ressemblerait à ceci:

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

Pourquoi cela ne fonctionne-t-il pas?

Était-ce utile?

La solution

"Connecteur factice" n'est pas une chaîne de connexion EF valide.

Une chaîne de connexion EF valide ressemble à:

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""
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top