我想尝试使用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的] 公共类Employee:ActiveRecordBase { [首要的关键] 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(公司),typeof(部门),typeof(员工)); IList员工= Employee.FindAllByProperty(“FirstName”, 的firstName);
我收到错误:
NHibernate.HibernateException:找不到命名连接字符串 Server =(local); initial catalog = DemoDB; Integrated Security = SSPI
连接有什么问题?
答案 0 :(得分:2)
Property connection.connection_string_name
强制NHibernate在App.Config的标准<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>
答案 1 :(得分:0)
对我来说,根网站的物理路径没有路径。在我的情况下,根站点仅用于保存单个应用程序。我们所有的网站都是由代码创建的,IIS 不进行验证,它只接受您告诉它的内容......包括空白字段。
在 IIS 中打开应用程序设置出现“无法读取配置”错误。
修复是 管理网站 --> 高级设置 填写物理路径(空白) 好的