10

我在 web.config 文件中成功设置了 NHibernate 配置。但是,我也在使用 ASP.NET Membership,它需要在 connectionStrings 元素中定义一个连接字符串。有没有办法让我的 NHibernate 配置使用这个值,所以我不需要定义连接字符串两次?

4

2 回答 2

17

您可以在 NHibernate 配置中使用 connection.connection_string_name 元素。看看这里。然后 NHibernate 将从 web.config 文件中按名称获取连接字符串

您需要connection.connection_string_name在配置中使用该属性

<connectionStrings>
    <add name="default" connectionString="server=(local);etc." />
</connectionStrings>

<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
    <session-factory>
        <property name="connection.connection_string_name">default</property>
    </session-factory>
</hibernate-configuration>

使用流畅的配置,您可以执行以下操作

ConnectionString(c=>c.FromConnectionStringWithKey("YourConnStrName"))

使用 NHibernate 配置 API,您可以执行以下操作:

var cfg = new Configuration();
cfg.DataBaseIntegration(db =>
{
    db.ConnectionStringName = "default";             
});
于 2009-11-17T16:11:47.627 回答
1

只是为了添加到 sly 的答案中,您可以像这样使用 FluentNHibernate 执行此操作(在您的流利配置中):

.ConnectionString(c=>c.FromConnectionStringWithKey("con_development"))
于 2010-05-14T10:25:33.110 回答