est-il possible d'utiliser des bases de données locales avec NHibernate? Si oui, qu'est-ce qui devrait être installé / configuré? P>
Actuellement, lorsque vous essayez d'utiliser la chaîne de connexion comme Source de données = (localdb) \ v11.0; Catalogue initial = TST1; Sécurité intégrée = SSPI EM> Lors de la création de sessionFactory, je reçois p>
system.data.sqlclient.sqxception: un réseau lié au réseau ou
une erreur spécifique à l'instance s'est produite lors de l'établissement d'une connexion à
Serveur SQL. Le serveur est introuvable ou inaccessible. Vérifier
que le nom d'instance est correct et que SQL Server est configuré pour
Autoriser les connexions à distance. (Fournisseur: Nommé Pipes Fournisseur, Erreur: 40 -
Impossible d'ouvrir une connexion à SQL Server) ---->
System.componentModel.win32Exception: Le chemin réseau n'a pas été trouvé p>
blockQuote>
Cependant, je suis capable de vous connecter à (localDB) \ v11.0 em> via l'explorateur d'objet SQL Server et l'entité Framework fonctionne avec cette chaîne de connexion.
Alors, qu'est-ce que je fais mal avec NH ou il est impossible d'utiliser localDB avec NH en ce moment? P>
5 Réponses :
Vous devrez peut-être utiliser la syntaxe archaïque avec NH, par exemple:
np:\\.\pipe\LOCALDB#ABB78D50\tsql\query
Assurez-vous d'installer cette mise à jour: http://support.microsoft.com/kb/2544514 P>
Assurez-vous que la base de données est créée: p>
créer une base de données [dbname] code> li>
- créer des tables si nécessaire li>
ul>
Changer la chaîne de connexion à: p>
source de données = (localdb) \ v11.0; catalogue initial = dbname; sécurité intégrée = true code> p> P>
et exécutez le web. Cela devrait fonctionner. P>
J'utilise aussi et jointdbfilename = | datadirectory | \ base_sase_name.mdf code> dans la chaîne de connexion.
myDatabase.mdf code> est dans
app_data code> répertoire de l'application p> p>
Vous n'avez pas besoin d'utiliser NP: \ Comme ce type de chaîne de connexion est un gros mal de tête pour tous. L'adresse du tuyau nommé localdb change fréquemment, vous devez donc réfléchir que sur votre chaîne de connexion.
Pour utiliser NHibernate avec localDB, obtenez la dernière version de NHibernate et utilisez la chaîne de connexion suivante: P>
Server=(localdb)\v11.0;Initial Catalog=<dbname>;User ID=<user>;password=<pwd>;Integrated Security=false;AttachDBFilename=<dbfile_path><dbfilename>.mdf
Oui, il est possible de se connecter. Allez à Afficher -> Server Explorer -> Développez les connexions de données, puis cliquez avec le bouton droit de la souris sur vos propriétés. Vous verrez les zones identité, conengtion et misc. Dans la zone de connexion, vous trouverez la chaîne de connexion nécessaire au fichier .xml où NHibernate est configuré. Copiez cette chaîne sous la propriété Connection.string Like:
<property name="connection.connection_string">Data Source=(LocalDb)\v11.0;AttachDbFilename={path}\aspnet-{projectName}-20141201132517.mdf;Initial Catalog=aspnet-{projectName}-20141201132517;Integrated Security=True</property>
Vous devrez peut-être utiliser la syntaxe archaïque avec NH, par exemple.
np: \\. \ pipe \ localdb # ABB78D50 \ TSQL \ Query code> - Pour certains arrière-plan, voir mssqlTips.com/sqlservertip/2694/...
Merci, cela semble fonctionner, mais je ne suis pas très heureux de créer des instances de la ligne de commande.
Faites pression sur les personnes NHibernate pour mettre à jour leur soutien de SQLLOCALDB. De plus, vous ne devriez pas créer une instance à chaque démarrage de votre programme. Vous ne pouvez pas arrêter et commencer l'instance? Une fois que vous connaissez le nom du tuyau, vous ne devriez pas avoir à le faire manuellement après cela ...
En fait, j'aimerais essayer dans mes tests, alors peut-être que j'utiliserai même l'instance par test si la performance sera ok :)