Argument wenn Instanz-Objekt erstellen, die von Object erben
-
10-07-2019 - |
Frage
Ich bin locker im Anschluss an ein eine ausgezeichnete Reihe von Blog-Beiträge von Kazi Manzur Rashid als Lernübung für das Lernen, wie man implementieren einige neue (für mich zumindest) Design-Muster, aber ich bin immer Probleme von Anfang an.
Ich habe kopiert grundsätzlich seinen Code für die Database
, RepositoryBase
und RepositoryBaseTests
Klassen, aber wenn ich versuche, um die Tests zu laufen, bekomme ich eine Fehlermeldung,
Kann nicht Instanz der Klasse Booking.Infrastructure.EntityFramework.Repositories.Tests.RepositoryBaseTests erstellen. Fehler: System.Reflection.TargetInvocationException: Ausnahme wurde durch das Ziel für einen Aufruf ausgelöst wurde. ---> System.ArgumentException: Format der Initialisierungszeichenfolge entspricht nicht der Spezifikation an der Position index 0 ..
Durch den Debugger ich überprüft habe, dass die Ausnahme auf dem Konstruktor für die Database
Klasse geworfen wird, die wie folgt aussieht:
public Database(
IConfigurationManager configurationManager,
string connectionstringName)
: base(
GetConnectionString(configurationManager, connectionstringName),
"BookingEntities")
{ // Nothing happens here }
Der Fehler wird ausgelöst, wenn die base
Konstruktor aufrufen, und wenn ich würde hart Code die Werte, die ich zur Zeit in mich senden, es würde wie folgt aussehen:
: base("Dummy connStr", "BookingEntities")
Warum funktioniert das nicht?
Lösung
"Dummy connStr" ist keine gültige EF Verbindungszeichenfolge.
Eine gültige EF-Verbindungszeichenfolge wie folgt aussieht:
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""