我正在尝试关注this教程,但是VS调试器一直在问我一个名为的文件 FluentConfiguration.cs到达这一行时:
return Fluently.Configure()
.Database(MySQLConfiguration.Standard
.ConnectionString(c => c
.Server("localhost")
.Database("test")
.Username("root")
.Password("w1e2a3r4")))
.Mappings(m => m
.AutoMappings.Add(model))
.ExposeConfiguration(BuildSchema)
.BuildSessionFactory();
除了这一行(我正在使用MySql)之外,我的所有代码都与教程完全相同。我三重检查参数,它应该没问题。
我得到的是一个对话框,要求我找到FluentConfiguration.cs,当它找不到它时,它会给出:
An invalid or incomplete configuration was used while creating a SessionFactory.
Check PotentialReasons collection, and InnerException for more detail.
我尝试从here复制此文件,但这不起作用。
我在这里错过了什么?
技术信息 - 我正在使用VS 2010 express,ASP.NET MVC3,MySQL服务器5.5和连接器:6.3.6
修改
这是内部异常的消息:
无法从NHibernate.Driver.MySqlDataDriver,NHibernate,Version = 2.1.2.4000,Culture = neutral,PublicKeyToken = aa95f207798dfdb4。
编辑2:
现在我得到“校验和不匹配:
找到'd:\ Builds \ FluentNH \ src \ FluentNHibernate \ Cfg \ FluentConfiguration.cs'的源代码。校验和:MD5 {94 f4 4c 43 49 bd 48 fb 9a d7 b2 fc 5 e1 4e d8}
确定校验和是否与以下位置匹配:
1:C:\ Users \ Oren \ Desktop \ FluentConfiguration.cs校验和:MD5 {84 33 30 45 11 da 3d 40 8e 2d 3c a9 e 7c cc 14}校验和不匹配。
文件'd:\ Builds \ FluentNH \ src \ FluentNHibernate \ Cfg \ FluentConfiguration.cs'不存在。
查看'd:\ Builds \ FluentNH \ src \ FluentNHibernate \ Cfg \ FluentConfiguration.cs'的脚本文档...
查看'd:\ Builds \ FluentNH \ src \ FluentNHibernate \ Cfg \ FluentConfiguration.cs'的项目。
该文件在项目中找到:'C:\ Users \ Oren \ Desktop \ FluentConfiguration.cs'。
确定校验和是否与以下位置匹配:
1:C:\ Users \ Oren \ Desktop \ FluentConfiguration.cs校验和:MD5 {84 33 30 45 11 da 3d 40 8e 2d 3c a9 e 7c cc 14}校验和不匹配。
查看目录'C:\ Program Files \ Microsoft Visual Studio 10.0 \ Common7 \ IDE \ vc7 \ atlmfc'...
查看目录'C:\ Program Files \ Microsoft Visual Studio 10.0 \ Common7 \ IDE \ vc7 \ crt'...
查看目录'C:\ Users \ Oren \ Desktop \'...
活动解决方案的调试源文件设置表明调试器不会要求用户找到该文件:d:\ Builds \ FluentNH \ src \ FluentNHibernate \ Cfg \ FluentConfiguration.cs。
调试器无法找到源文件'd:\ Builds \ FluentNH \ src \ FluentNHibernate \ Cfg \ FluentConfiguration.cs'。
答案 0 :(得分:1)
再次粘贴流畅的hibernate dlls和pdbs,问题解决了。
答案 1 :(得分:1)
解决此问题。我不得不添加对NHibernate.ByteCode.Castle.dll
的引用答案 2 :(得分:0)
调试器要求为Fluent nHibernate提供一个源文件。您可以下载它,因为它是开源的并且详细调试它,尽管答案在InnerException中。
这可能是由于尚未映射的类或可能未标记为虚拟的属性,或者仅仅是不遵循标准FNH约定的数据库表。您需要访问InnerException并阅读它所说的内容,因为nHibernate异常通常非常有用。当我尝试运行运行MSTest的单元测试时,遇到内部异常时遇到了很多麻烦。我切换回nUnit并没有遇到麻烦。
另一个非常有用的事情是在配置过程中输出.hbm文件(FNH在幕后为您生成这些文件)。有关详细信息,请参阅Generate XML mappings from fluent Nhibernate。注意:我通常添加一个编译器指令,以确保我只在调试版本中输出.hbm文件。