0

我想尝试一个使用 Active Record + MSSQL2012 的简单示例。这是我的 App.config 文件:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="hibernate-configuration" type="NHibernate.Cfg.ConfigurationSectionHandler, NHibernate" />
  </configSections>
  <startup>
  </startup>
  <hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
    <session-factory>
      <property name="proxyfactory.factory_class">NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle</property>
      <property name="dialect">NHibernate.Dialect.MsSql2008Dialect, NHibernate</property>
      <property name="connection.connection_string_name">Server=(local);initial catalog=DemoDB;Integrated Security=SSPI</property>     
    </session-factory>
  </hibernate-configuration>
</configuration>

在本地,我有一个非常简单的数据库DemoDB,有 3 个表,如果通过 SQL Management Studio 连接到。

员工等级:

使用 Castle.ActiveRecord;

命名空间 ActiveRecordDemo.Domain { [ActiveRecord] public class Employee : ActiveRecordBase { [PrimaryKey] public int Id { get; 放; }

    [Property]
    public string FirstName { get; set; }

    [Property]
    public string LastName { get; set; }

    [BelongsTo(Type = typeof(Department), Column = "Id")]
    public Department Department
    {
        get;
        set;
    }
} }

当我运行代码时

ActiveRecordStarter.Initialize(ActiveRecordSectionHandler.Instance, typeof(Company), typeof(Department), typeof(Employee)); IList 员工 = Employee.FindAllByProperty("FirstName", firstName);

我收到一个错误:

NHibernate.HibernateException : 找不到命名连接字符串 Server=(local);initial catalog=DemoDB;Integrated Security=SSPI

连接有什么问题?

4

2 回答 2

2

属性强制 NHibernate 在App.Config 的标准部分中connection.connection_string_name枚举的字符串中搜索连接字符串。<connectionStrings>您有两个选择:使用属性connection.connection_string而不是connection.connection_string_name,将连接字符串放置到特殊部分:

<connectionStrings>
  <add name="MyConnString" connectionString="Server=(local);initial catalog=DemoDB;Integrated Security=SSPI" />
    </connectionStrings>

<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
<session-factory>
  <property name="proxyfactory.factory_class">NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle</property>
  <property name="dialect">NHibernate.Dialect.MsSql2008Dialect, NHibernate</property>
  <property name="connection.connection_string_name">MyConnString</property>     
</session-factory>

于 2013-07-26T09:37:00.343 回答
0

对我来说,根网站的物理路径没有路径。在我的例子中,根站点只是用来保存一个应用程序。我们所有的网站都是由代码创建的,IIS 不验证,它只接受你告诉它的内容......包括空白字段。

在 IIS 中打开应用程序设置会出现“无法读取配置”错误。

修复是管理网站->高级设置填写物理路径(为空白)确定

于 2021-07-20T11:34:54.883 回答