如何将连接字符串注入到我的nhibernate配置中?

时间:2011-01-31 18:44:36

标签: nhibernate

我需要能够在运行时配置我的连接字符串,最好是从配置文件中配置最简单的解决方案。但是,我不能使用ConnectionString.FromAppSetting和ConnectionString.FromConnectionStringWithKey。我的数据访问程序集是从控制台应用程序,win表单和Web引用的。虽然我可以将“设置”添加到我的项目中,但它只是一个dll而且不会将app.config与它一起带到实际的应用程序构建目标。

我不指望这种情况太少见了。通常的处理方式是什么?这是何时使用依赖注入的一个主要示例(我可以从一个单独的文件配置?)我将连接字符串提供给我的'工作单元'对象,但我想静态地执行它只构建一次config和sessionfactory。

如果需要,我当然可以澄清,但我不确定最好的方式。

1 个答案:

答案 0 :(得分:2)

您可以使用hibernate.cfg.xml(它适用于每个平台)。 或者,您可以执行以下操作

  1. 继承DriverConnectionProvider
  2. 覆盖ConnectionString属性,并从任何地方读取连接字符串。
  3. 在代码或xml中为您的nhibernate配置提供新的连接提供程序。
  4. 您可以在DriverConnectionProvider中使用ServiceLocation,也可以在unhaddins上使用EnhancedBytecodeProvider。在google上搜索增强的bytecodeprovider和Fabio Maulo。

    以下是一个示例:Dynamically change user info in connection string