我们有一个使用FluentNibernate映射实体的项目。现在我需要为这些地图添加一些格式验证。对于Nullable,Length等,我们目前正在使用映射。我在项目中添加了NHibernate Validator,但收到了关于需要NHibernate版本2.1.2.4000的编译时错误。所以我升级到那个版本只是为了得到一个运行时错误,说它找不到NHibernate 2.1.0.4000。我可以编写扩展方法来使用FluentNibernate进行验证吗?我是否必须使用相同版本的NHibernate重新编译?首选方法是使用这些的释放。任何其他设备都会赞赏。
答案 0 :(得分:5)
1)重新编译是一个选项,这将允许您在没有装配问题的情况下使用这两个选项。
2)另一个是装配绑定重定向,任何对早期版本的NHibernate的调用都可以强制转到你拥有的版本。您可以使用app.conifg / web.conifg
执行此操作(你可以找到更多相关信息here)
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="NHibernate" publicKeyToken="aa95f207798dfdb4"/>
<bindingRedirect oldVersion="2.1.0.4000" newVersion="2.1.2.4000"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
答案 1 :(得分:0)
最新版本NHibernate.Validator 1.2.0 CR1和FluentNHibernate 1.0.0.632都是针对NHibernate 2.1.2.4000构建的。
要获取最新版本的FluentNHibernate,请转到build server at CodeBetter.com。
要获取最新版本的NHibernate.Validator,请转到nhibernate.info。
答案 2 :(得分:0)
不是说它会解决您的问题,但您考虑过FluentValidation。不过,听起来你有一个请求特定版本DLL的引用。