nHibernate und SQL Server 2012 LocalDB
Ist es möglich, mit LocalDB Datenbanken mit NHibernate? Wenn ja, was muss installiert/konfiguriert?
Derzeit, wenn Sie versuchen, verwenden Sie die Verbindungszeichenfolge wie Data Source=(LocalDb)\v11.0;Initial Catalog=tst1;Integrated Security=SSPI beim erstellen SessionFactory bekomme ich
System.Daten.SqlClient.SqlException : Eine Netzwerk-oder
Instanz-spezifische Fehler beim herstellen einer Verbindung zu
SQL-Server. Der server wurde nicht gefunden oder ist nicht zugänglich. Überprüfen
dass der Instanzname richtig ist und dass SQL Server so konfiguriert ist,
remote-verbindungen erlauben. (Anbieter: Named Pipes-Anbieter, Fehler: 40 -
Konnte nicht geöffnet werden eine Verbindung zu SQL Server) ---->
System.ComponentModel.Win32Exception : Der Netzwerkpfad wurde nicht gefunden
Aber ich bin in der Lage, eine Verbindung zu (LocalDb)\v11.0 über SQL Server-Objekt-Explorer, und Entity Framework arbeitet mit, dass der connection string.
So, was mache ich falsch mit NH, oder es ist unmöglich mit LocalDB mit NH im moment?
- Sie müssen möglicherweise verwenden Sie die archaische syntax mit nH, z.B.
np:\\.\pipe\LOCALDB#ABB78D50\tsql\query
- für einige Hintergrundinformationen finden Sie unter mssqltips.com/sqlservertip/2694/... - danke, das scheint zu funktionieren, aber ich bin nicht ganz glücklich mit dem erstellen von Instanzen von der Kommandozeile aus..
- Dann Druck die nHibernate Leute aktualisieren Ihre Unterstützung von SqlLocalDb. Auch sollten Sie nicht erstellen Sie eine Instanz jedes mal, wenn Sie starten Sie Ihr Programm. Können, nicht Sie beenden und starten Sie die Instanz? Sobald Sie wissen, die pipe-Namen, die Sie nicht haben sollte, es zu tun alle manuell nach, dass...
- Eigentlich möchte ich versuchen, es in meinen tests, so werde ich vielleicht sogar mit Instanz-pro-testen, ob die performance wird ok sein 🙂
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie möglicherweise die archaische syntax mit nH, z.B.:
(Für einige Hintergrundinformationen, warum diese syntax ist manchmal erforderlich, für Verbindungszeichenfolgen finden Sie unter diesen Tipp mssqltips.com.)
Ich weiß, dies ist keine ideale Antwort, aber bis nHibernate updates offiziell unterstützt SqlLocalDb, es könnte Ihre einzige Wahl... hoffentlich Irre ich mich und jemand hat herausgefunden, eine elegantere Art und Weise zu verbinden.
Brauchen Sie nicht zu verwenden, np:\, da diese Art der connection-string ist eine große Kopfschmerzen für alle. Die Adresse von localdb named pipe Häufig ändert, so dass Sie haben, um widerzuspiegeln, dass auf Ihrem Verbindungs-string.
Verwenden NHibernate mit localDB, erhalten Sie die neueste version von NHibernate und verwenden Sie die folgende Verbindungszeichenfolge:
Der trick ist, die AttachDBFilename.
Ja, es ist möglich, zu verbinden. Gehen Sie zu Ansicht -> Server-Explorer -> erweitern Sie Datenverbindungen, und klicken Sie rechts auf Ihre und gehen Sie zu Eigenschaften. Sehen Sie die Bereiche Identität, Conenction und Sonstiges. In Verbindung Bereich finden Sie die Verbindungszeichenfolge benötigt .xml-Datei, wo NHibernate konfiguriert ist. Kopieren Sie diesen string unter der Verbindung.string-Eigenschaft, wie :
Die ich Hinzugefügt habe, NHibernate zu meinem MVC-Projekt folgende diese post.
Hoffe, dass dies helfen.
Stellen Sie sicher, dass Sie dieses update installieren:
http://support.microsoft.com/kb/2544514
Dann stellen Sie sicher, dass die Datenbank erstellt wurde:
zu (localdb)\v11.0
CREATE DATABASE [dbname]
Ändern Sie die Verbindungszeichenfolge:
Data Source=(LocalDb)\v11.0;Initial Catalog=dbname;Integrated Security=true
Und das web. Es sollte funktionieren.
Nutze ich auch
AttachDBFilename=|DataDirectory|\Database_name.mdf
in der Verbindungszeichenfolge.sowie
MyDatabase.mdf
ist inApp_Data
Verzeichnis der Anwendung