是否有可能使用的LocalDB数据库与NHibernate? 如果是的话,应该安装/配置?
目前正在使用的连接字符串,如数据源=(的LocalDB)\ V11.0时;初始目录= TST1;创建SessionFactory的时候集成安全性= SSPI我得到
System.Data.SqlClient.SqlException:在与SQL Server建立连接时出现与网络相关的或特定于实例的错误。 服务器未找到或无法访问。 验证实例名称是否正确,以及SQL Server配置为允许远程连接。 (provider:命名管道提供程序,error:40 - 无法打开到SQL Server的连接)----> System.ComponentModel.Win32Exception:网络路径找不到
不过,我可以通过SQL Server的对象资源管理器连接到(的LocalDB)\ V11.0,和Entity Framework工程与连接字符串。 所以,我在做什么毛病NH,或者这是不可能的时刻与NH使用的LocalDB?
您可能需要使用与NH,例如古老的语法:
np:\\.\pipe\LOCALDB#ABB78D50\tsql\query
(有关为什么有时候需要的连接字符串此语法一些背景,参见上mssqltips.com这个提示 。)
我知道这是不是一个理想的答案,但直到NHibernate的更新正式支持SqlLocalDb,这可能是你唯一的选择...希望我是错的,有人想出了一个更优雅的方式进行连接。
你并不需要使用NP:\作为这种类型的连接字符串的是一个大伤脑筋所有。 的管道变化的LocalDB命名地址频繁,所以你必须反映在您的连接字符串。
要使用的LocalDB使用NHibernate的,获得最新版本的NHibernate和使用下面的连接字符串:
Server=(localdb)\v11.0;Initial Catalog=<dbname>;User ID=<user>;password=<pwd>;Integrated Security=false;AttachDBFilename=<dbfile_path><dbfilename>.mdf
诀窍是AttachDBFilename。
是的,这是可能的连接。 转到查看 - >服务器资源管理器 - >展开数据连接,然后用鼠标右键单击您的选择属性。 您将看到的区域标识,Conenction和杂项。 在连接方面,你会发现需要的地方NHibernate的配置.xml文件的连接字符串。 该字符串复制像connection.string属性下:
<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>
我已经添加到NHibernate的关注我的MVC项目这个职位。
希望这有助于。
请确保您安装此更新: http://support.microsoft.com/kb/2544514
然后确保数据库中创建:
- 使用数据库资源管理器或SQL Management Studio中,使以(的LocalDB)\ V11.0的连接
- 运行
CREATE DATABASE [dbname]
- 如果创建所需的表
更改连接字符串:
Data Source=(LocalDb)\v11.0;Initial Catalog=dbname;Integrated Security=true
并运行Web。 它应该工作。
我也用AttachDBFilename=|DataDirectory|\Database_name.mdf
连接的字符串中。
<configSections>
<section name="hibernate-configuration" type="NHibernate.Cfg.ConfigurationSectionHandler, NHibernate" />
</configSections>
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
<session-factory name="">
<property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
<property name="connection.driver_class">NHibernate.Driver.SqlClientDriver</property>
<property name="connection.connection_string_name">LocalDb</property>
<property name="dialect">NHibernate.Dialect.MsSql2008Dialect</property>
</session-factory>
</hibernate-configuration>
<connectionStrings>
<add name="LocalDb" connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=MyDatabase;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\MyDatabase.mdf" providerName="System.Data.SqlClient" />
</connectionStrings>
和MyDatabase.mdf
是App_Data
的应用程序目录