NHibernate Validator 未与 Fluent NHibernate 集成

2023-12-04

我在让 NHV 与 Fluent NHibernate 配合使用时遇到一些问题。我的单元测试有一个应该验证失败的实体,最终会抛出 ADO 异常。我按照以下方式配置了 NHV:

    private static void Init()
    {
            _SessionFactory = Fluently.Configure()
              .Database(MsSqlConfiguration.MsSql2005.ConnectionString(connectionString)
                  .ShowSql())
              .Mappings(m =>
                  m.FluentMappings.AddFromAssemblyOf<SessionFactory>()
                  .ExportTo(pathToExportMappingsTo))
              .ProxyFactoryFactory("NHibernate.ByteCode.LinFu.ProxyFactoryFactory, NHibernate.ByteCode.LinFu")
              .ExposeConfiguration(ConfigureNhibernateValidator)
              .BuildSessionFactory();
    }

    private static void ConfigureNhibernateValidator(Configuration config)
    {
        var nhvConfiguration = new NHibernate.Validator.Cfg.Loquacious.FluentConfiguration();
        nhvConfiguration
           .SetDefaultValidatorMode(ValidatorMode.OverrideAttributeWithExternal)
           .Register(Assembly.Load("Business.Objects")
           .ValidationDefinitions())
           .IntegrateWithNHibernate
               .RegisteringListeners();

        ValidatorEngine validatorEngine = new ValidatorEngine();
        validatorEngine.Configure(nhvConfiguration);

        ValidatorInitializer.Initialize(config, validatorEngine);
    }

我已经多次查看此配置并在互联网上搜索以尝试找出问题所在。我还查看了 NHV 源中提供的示例,但我无法弄清楚为什么我的单元测试没有抛出 InvalidStateException。我有一个单元测试来验证应该失败的同一实体,该实体直接通过验证引擎对其进行验证,并且这是有效的。

有谁发现上面的配置有什么问题吗?

我在用着NHibernate 3.1, NHibernate 验证器 1.3 and 流畅的 NHibernate 1.2.0.712


我对此进行了调试,似乎当它验证我的实体时,它再次初始化了我的验证器引擎。我通过将上面的ConfigureNhibernateValidator(Configuration config)方法更改为以下内容来纠正这个问题(这里的关键是设置SharedEngineProvider):

    private static void ConfigureNhibernateValidator(Configuration config)
    {
        var provider = new NHibernateSharedEngineProvider();
        NHibernate.Validator.Cfg.Environment.SharedEngineProvider = provider;

        var nhvConfiguration = new NHibernate.Validator.Cfg.Loquacious.FluentConfiguration();
        nhvConfiguration
           .SetDefaultValidatorMode(ValidatorMode.OverrideAttributeWithExternal)
           .Register(Assembly.Load("Business.Objects")
           .ValidationDefinitions())
           .IntegrateWithNHibernate
               .AvoidingDDLConstraints()
               .RegisteringListeners();

        ValidatorEngine validatorEngine = NHibernate.Validator.Cfg.Environment.SharedEngineProvider.GetEngine();
        validatorEngine.Configure(nhvConfiguration);

        ValidatorInitializer.Initialize(config, validatorEngine);
    }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

NHibernate Validator 未与 Fluent NHibernate 集成 的相关文章

  • NHibernate 表更新事件

    我有这个表映射 我认为细节并不重要 WithTable COPACKER FACILITY Id x gt x FacilityNumber FACILITY NUM GeneratedBy Sequence FACSEQ Map x gt
  • 如何在使用 NHibernate 进行任何插入之前增加 ID

    看起来NH只获取一次MAX ID 第一次插入然后在内部存储这个值 这会在其他进程插入数据时给我带来一些问题 然后我没有实际的 ID 并且抛出重复键异常 假设我们有桌子Cats CREATE TABLE Cats ID int Name va
  • 如何将 NHibernate 和 DTO 与 RIA 服务结合使用

    我将 NHibernate 与 RIA 服务和 Silverlight 4 一起使用 我创建 DTO 来通过 RIA 服务传输数据 而不是分发我的域层对象 根据 Martin Fowler 的分布式对象设计第一定律 不要分发您的对象 DTO
  • 将 nHibernate 3.x 与 Jet 驱动程序结合使用 (Microsoft Access)

    我正在开发一个 nHibernate 项目 该项目使用 Access 数据库作为数据源 不幸的是 我在运行时遇到问题 因为我找不到支持 nHibernate 3 x 的 Jet 驱动程序 我已经从 trunk 下载了源代码并编译了它 但事实
  • 软删除 Nibernate

    我想对我的数据库表进行软删除 我应用了以下语句 如此处所述http nhibernate info blog 2008 09 06 soft deletes html http nhibernate info blog 2008 09 06
  • 您会将什么放入存储库类(数据访问层)的单元测试中?

    我想为我的数据访问层编写一个单元测试 以确保其中的一切正常工作 问题是 我应该把什么样的东西放入测试中 DAL 是静态的Repository隐藏底层 Fluent NHibernate 并通过一个公开的东西向公众公开的类IQueryable
  • 流畅的 NHibernate 和 XML 列

    我正在从头开始构建一个新站点 并正在考虑使用 Fluent NHibernate 作为我的 ORM 我认为它可以轻松处理所有事情 可能除了我的 XML 列 我从来没有使用 NHibernate 构建过网站 尽管我使用过 Hibernate
  • 如何保持长时间运行的NHibernate Session数据一致?

    我在 ASP NET 会话中缓存了 NHibernate 会话 我遇到过一种情况 用户编辑了一个对象 因此它位于 ISession 的第一级缓存中 然后另一个用户编辑了同一个对象 此时 用户 1 仍然可以看到其编辑的原始版本 而用户 2 可
  • NHibernate Projections - 如何投影集合

    有一个场景 我只需要从实体中选择单个 几列 但在查询中选择多个子项 我一直在尝试投影 但在集合属性上出现错误 这是很正常的情况 但找不到有关投影集合的信息 仅属性 Customer customerAlias null Order orde
  • 流畅的 Hibernate 问题

    我的实体中有这个 public virtual Iesi Collections Generic ISet
  • nHibernate + wcf + Isession

    我有一个包含 3 个项目的 C 解决方案 数据 WCF 和 UI 第一个是与数据库对话的类库 它通过第二个项目公开 该项目的类型为 WCF 服务库 原因是它将在第三个项目 称为 UI 的 Asp net 应用程序 作为指向 dll 的简单
  • 自定义字符串查询操作的 Linq to NHibernate 可扩展性?

    我希望能够在 NHibernate Linq 表达式中使用自定义字符串查询 举例来说 这只是一个例子 我希望能够选择包含属性的实体 该属性是特定字符串的字谜 var myEntities EntityRepository AllEntiti
  • 对于返回超过1个值的SQL select,当Id为GUID时它们如何排序?

    我想知道 SQL Server 如何对查询返回的数据进行排序 并且各个表的 Id 列都是 uniqueidentifier 类型 我在创建所有 GUID 时使用 NHibernate GuidComb 并执行以下操作 Sheet sheet
  • NHibernate:将 ICriteria 转换为 DetachedCriteria

    任何人都知道如何将 ICriteria 转换为 DetachedCriteria 我需要使用现有的 ICriteria 作为子查询的一部分 使用 Add Subqueries PropertyIn Name myDetachedCriter
  • 可排序的 Telerik 网格 + NHibernate、IQueryable 和 ASP.NET MVC

    我正在尝试让 Telerik 网格工作 分页工作正常 我的视图代码如下所示 Html Telerik Grid Model Name Grid Columns columns gt columns Bound o gt o ItemName
  • Fluent NHibernate 日期时间 UTC

    我想创建一个流畅的 nhibernate 映射来通过以下方式映射 DateTime 字段 保存时 保存 UTC 值 读取时 调整为本地时区值 实现此映射的最佳方法是什么 就我个人而言 我会将日期存储在 UTC 格式的对象中 然后在读 写时在
  • 流畅的 Nhibernate AutoMapping 继承和忽略抽象属性

    我有一个已成功映射的继承结构 产品 基础 PdfProduct 继承自Product 和OtherProduct 继承自Product 这些工作正常 我之前用 hbm xml 文件做过类似的事情 在上一个项目中 当我试图找出产品是什么类型时
  • 如何在 NHibernate 查询中仅选择几列?

    我有一个一类到一表的映射 不幸的是 这个表有 110 多个列 查询需要很长时间 尤其是大多数时候我只想查看 我的问题是查询是根据用户想要查看的内容动态生成的 我无法真正使用不同的列创建不同的映射 因为会有大量的组合 我正在使用条件 API
  • NHibernate HQL 相当于 T-SQL 的 TOP 关键字

    NHibernate HQL 相当于 T SQL 的 TOP 关键字是什么 另外 用非 HQL 方式说 给我一门课的前 15 个 是什么意思 在 HQL 中这实际上非常简单 var top15 session CreateQuery fro
  • 一次调用多个结果

    分页数据时 我不仅想返回10条结果 还想获取所有页面中的项目总数 如何在一次调用中获取页面的总计数和结果 我的分页方法是 公共IList GetByCategoryId intcategoryId intfirstResult intmax

随机推荐

  • Sqlalchemy - 执行原始 SQL 查询

    我在连接到多个数据库的 Flask 应用程序中使用 sqlalchemy 使用如图所示的绑定here 我想在非主数据库之一上执行原始 SQL 查询 我正在尝试使用会话 执行 如此处所示 但它针对主数据库执行 API 文档声明您可以使用一个参
  • 自动完成 HTML 中的 ERROR 404(使用 ASP.NET 和 JQuery)

    由于某些原因 在 ASP NET 项目中 我的自动完成功能无法正常工作 我尝试了在数据连接中使用数据源的不同方法 但无济于事 我已经为其创建了一个名为 Diagnose 的数据库 但由于某种原因 它在 jquery 上显示错误 404 这是
  • 如何使我的 css 文件在 django 中工作

    我是 django 新手 但在 python 方面有一些相关技能 我刚刚开始在 django 中构建一个项目 到目前为止我已经能够在我的项目中创建一个应用程序 另外 我已经能够将我的网站的index html文件链接到django 并且在命
  • Final ArrayList 的意义是什么?

    通过将 ArrayList 或其他 Collection 设为 Final 我们可以获得哪些优点 缺点 我仍然可以向 ArrayList 添加新元素 删除元素并更新它 但最终的效果是什么 但最终的效果是什么 这意味着您无法重新绑定变量以指向
  • 如何在 JavaScript 中设置浏览器特定的 css?

    如何设定风格 webkit box shadow 0px 0px 11px 000通过 JavaScript 到一个元素 您可以使用style object element style webkit box shadow 0px 0px 1
  • 活动堆栈问题

    我有两组活动 假设每组有 3 个活动 A1 B1 C1 A2 B2 C2 我从 A1 启动我的应用程序 然后 gt B1 gt C1 这里我想从 C1 跳转到 gt A2在 A2 处 如果我按回键 应用程序应该存在 而不是让我返回 C1 然
  • Firebase:如何自动更新多个资源?

    Firebase 允许更新资源交易地 据我了解 客户端执行此操作 向服务器发送请求 说 如果旧值是 X 则将新值设置为 Y 如果存在争用 服务器可能会拒绝来自客户端的多个更新 直到其中一个更新被接受为止 现在 如果我想自动更新多个资源该怎么
  • 如何使用javascript删除表中的特定行?

    到目前为止我已经实施了 在输入字段中输入值并单击 添加 按钮 输入的值将添加到新行 当我单击删除按钮时 所有行都将被删除 我需要实施什么 复选框应该添加到每一行 如果我选择该复选框并单击 删除 按钮 则只有该特定行应该被删除 并且如果我也选
  • Angular 中的通用 http 错误处理

    Angular2 JWT为原生 Angular http 类提供 AuthHttp 包装器 该类会自动在每个请求中包含 http 授权标头 在我的服务中 我通常会这样调用后端 api getThings Observable
  • 在 django-nonrel 中创建超级用户

    我是一个新手 一直在学习 django nonrel 教程 并在 Google App Engine 中设置了 django nonrel 我现在尝试使用以下命令创建超级用户 manage py createsuperuser userna
  • Nginx 位置匹配正则表达式不起作用

    我无法将位置与下面提到的模式匹配 我想将过期标头设置为 24 小时 但它不起作用 如果我只使用下面提到的正则表达式 它就有效 location abc php expires 24h 下面的例子不起作用 location abc php x
  • Delphi Win64 调试器加载符号有限制吗?

    我正在使用 RAD Studio 10 2 3 东京 Research 相关这个问题 and 这个问题我在调试广泛使用运行时 BPL 作为插件系统的旗舰应用程序时遇到了麻烦 仅当作为 Win64 应用程序进行编译和调试并使用 Delphi
  • 在 ajax 加载的页面片段中运行脚本

    我的网络应用程序动态加载其 UI 的各个部分jquery ajax 不过 新的 UI 部分带有脚本 我这样加载它们 Use ajax url url dataType html success function data textStatu
  • F# 中的通用单位

    在 F 中编写泛型函数时 我可以使用 LanguagePrimitives 模块中定义的成员 例如在此函数中 只需增加一个数字 let inline increment x a x LanguagePrimitives GenericOne
  • CUDA 5.0:替换 cutil.h?

    我想用新的 CUDA 5 0 编译一个旧项目 基于 CUDA 2 3 不幸的是 它使用了旧的 cutil h 标头 该标头在 CUDA 5 0 中不再可用 这个标题有替代品吗 特别是缺少图像导入和导出功能 PPM PGM 例如剪切保存PGM
  • JPanel 填充所有 JFrame 空间

    我编写了这段代码来显示面板中的一组颜色 import java util ArrayList import java util List import javax swing JFrame import javax swing JPanel
  • PHP - RSS 生成器

    我有一个旧网站 每次创建新帖子时都会生成自己的 RSS 当我在 PHP 4 的服务器上时一切正常 但现在主机更改为 PHP 5 我总是有一个 格式错误的 XML 我使用 xml parser create 和 xml parse 和 fwr
  • C# 通过OleDb读取打开的Excel文件

    我需要连接到open使用 NET 3 5 的 Excel 2003 文件 看来我尝试使用的 OleDb 连接只需要该文件 但我需要同时在 Excel 中打开这个文件 Is 非锁定读取可能的 EDIT 我通过在打开文件之前复制文件解决了这个问
  • Private 可见性修饰符的含义

    在下面的 Tosee 类中 当我调用 s hiddenInt 时 hiddenInt 是可见的 但是 当我在另一个类 CantSee 中创建 ToSee 对象时 私有变量不可见 为什么会这样呢 我的印象是 私有意味着在类的任何实例中 客户端
  • NHibernate Validator 未与 Fluent NHibernate 集成

    我在让 NHV 与 Fluent NHibernate 配合使用时遇到一些问题 我的单元测试有一个应该验证失败的实体 最终会抛出 ADO 异常 我按照以下方式配置了 NHV private static void Init SessionF