这是ASP.NET MVC 5示例应用程序。 试图学习MVC的模块NHibernate。
如果我理解正确的话。如果设置在web.config中编码为configsection,则不需要hibernate.cfg.xml文件。
是xmlns版本错了吗?或者你看到拼写错误的东西? 那么为什么即使配置了web.config,NHibernate也会问hibernate.cfg.xml? (感谢)
<configSections>
<section name="hibernate-configuration" type="NHibernate.Cfg.ConfigurationSectionHandler,NHibernate" />
...
<hibernate-configuration xmlns="urn:nhibernate-configuration-version-2.2">
<session-factory>
<property name="dialect">NHibernate.Dialect.MySQLDialect</property>
<property name="connection.driver_class">NHibernate.Driver.MySqlDataDriver</property>
<property name="connection.connection_string_name">LocalMySqlServer</property>
</session-factory>
</hibernate-configuration>
收到此错误:
Could not find file '...\Visual Studio 2013\Projects\bin\Debug\hibernate.cfg.xml'.
和DB类静态成员(在global.asax.cs Application_Start方法中使用过一次)是:
public static void Configure()
{
var config = new Configuration();
config.Configure();
var mapper1 = new ModelMapper();
mapper.AddMapping<UserMap>();
config.AddMapping(mapper.CompileMappingForAllExplicitlyAddedEntities());
_sessionFactory = config.BuildSessionFactory();
// _session factory is a class member defined as
// private static ISessionFactory _sessionFactory;
}
安装NHibernate 4.0.3.4000 [使用nuget]
答案 0 :(得分:1)
改变
<hibernate-configuration xmlns="urn:nhibernate-configuration-version-2.2">
到
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
解决了这个问题。我确定,因为我重新测试了第一个方案。和boM!同样的错误抛出。所以xmlns字符串已更新。
我是怎么找到的。 菜单中打开了web.config&gt; xml&gt; Schemes [添加了nhibernate xsd文件,您可以在项目\包中找到它们] 比自动完成确实在web.config中工作,并向我显示正确的架构字符串。