首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

nHibernate在单元测试期间输出sql日志记录

作为一个云计算领域的专家,我可以告诉你,nHibernate是一个用于.NET平台的对象关系映射(ORM)框架。它允许开发人员将数据库表映射到C#或VB.NET对象,并提供了一种方便的方式来查询和操作数据库。

在单元测试期间,nHibernate可以输出SQL日志记录,以帮助开发人员诊断和解决问题。这些日志记录可以显示nHibernate生成的SQL语句,以及每个语句的执行时间和参数值等信息。

要在单元测试期间启用nHibernate的SQL日志记录,可以使用以下代码:

代码语言:csharp
复制
var configuration = new Configuration();
configuration.Configure();
configuration.SetProperty("show_sql", "true");
configuration.SetProperty("format_sql", "true");
configuration.SetProperty("use_sql_comments", "true");
var sessionFactory = configuration.BuildSessionFactory();

这将启用nHibernate的SQL日志记录,并将其格式化以便于阅读。

在使用nHibernate时,建议使用依赖注入容器来管理数据库连接和会话。这可以使应用程序更易于测试和维护,并允许更容易地替换数据访问层的实现。

总之,nHibernate是一个功能强大的ORM框架,可以帮助开发人员更容易地访问和操作数据库。在单元测试期间,启用SQL日志记录可以帮助开发人员诊断和解决问题,并提高应用程序的可维护性和可测试性。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Succinctly 中文系列教程(二) 20220109 更新

、你好 Spark 三、Spark 内部 四、使用 Spark 的数据输入和输出 五、总结 Succinctly SQL Azure 教程 一、Azure 上的 SQL 介绍 二、 Azure 虚拟机上安装和配置...九、日志记录 十、性能分析 十一、扩展服务栈 十二、使用文档记录网络服务 Succinctly Bootstrap 教程 零、简介 一、什么是推特 Bootstrap?...二、什么是单元测试? 三、证明正确性 四、实现单元测试的策略 五、三思而后行:单元测试的成本 六、单元测试是如何工作的?...七、常用单元测试工具 八、测试基础 九、将 Visual Studio 用于单元测试 十、将 NUnit 用于单元测试 十一、高级单元测试 十二、用于其他目的的单元测试 十三、总结 Succinctly...虽然我们追求卓越,但我们并不要求您做到十全十美,因此请不要担心因为翻译上犯错——大部分情况下,我们的服务器已经记录所有的翻译,因此您不必担心会因为您的失误遭到无法挽回的破坏。(改编自维基百科)

5.9K20

NHibernate 批量数据插入测试

NHibernate 批量数据插入测试 .Net 环境下测试 数据库环境以及 NHibernate 配置 SQL Server 环境为 VS2013 自带的 localdb v11.0, 对应的 NHibernate...开发环境测试结果 运行单元测试的结果如下图所示: ? 从上图单元测试运行时间看, 同一台机器上, SqlServer 的性能大概是 MariaDB 5~6 倍。...生产环境测试结果 将测试数据库分别部署 SQL Server 2012 和 MariaDB 内网的服务器上, 服务器硬件配置几乎一致, 数据库版本也与开发环境 一致, 反复运行测试, 结果大致如下:...由于 SqlClientBatchingBatcherFactory mono 环境下无法运行, 所以以下两个测试都不使用 batch 。 OS X 开发环境下测试结果如下: ?... Ubuntu Server 环境下测试结果如下: ?

1.1K10

Fluent NHibernate之旅(四)-- 关系(上)

经过了前面三篇的介绍,相信大家对Fluent NHibernate已经有一定的了解了,我们学习中,Fluent 也已经进入了RTM版本。...这次的版本发布离RC版只有半个月不到,修正了很多bug,同时补充了大量的功能,每天更新中,也看到了大量的单元测试,我们相信Fluent NHibernate 已经相对稳定成熟了。...Mapping 今天我们将说一下ORM中的R映射,我们现在的数据库大多都是关系型数据库了,所以可以说关系我们数据库设计中也是非常重要的部分,NHibernate也非常重视这一块,但在传统方式中,配置就比较麻烦...= session.Get(1); Assert.Equal("James", user.Detail.Name.FirstName); } } 从这篇以后,单元测试会使用...语句进行的查询,并不是延迟加载,这一点可以通过Sql Server Profiler查看: ?

1.2K60

NHibernate详解

NHibernate 为你处理这些,远胜于你不得不写SQL去从数据库存取对象。你的代码仅仅和对象关联,NHibernat 自动产生SQL语句,并确保对象提交到正确的表和字段中去。...4.构建一个让NHibernate知道如何连接数据库的配置文件 5.使用NHibernate的API 第一步:写构建表的SQL 这里我们将使用的是一个非常简单的例子...我们将使用如下的一张User表(假定你已经设置好一个数据库—的例子里我称它为NHibernate)。...那里有一堆属性你需要调整来确定如何让NHibernate来访问数据库。再次说明,你可以文档里获取更多信息。 NHibernate使用log4net来记录内部发生的一切。...一个应用程序产品里,在你特定环境里,我推荐配置log4net,并为NHibernate设置一定的日志级别。 你还需要配置hibernate.cfg.xml文件: <?

61430

NHibernate总结

NHibernate不仅仅管理.NET 类到数据库表的映射(包括.NET 数据类型到SQL 数据类型的映射),还提供数据查询和获取数据的方法,大幅度减少我们开发时人工使用SQL和ADO.NET处理数据的时间...我使用的开发环境:Microsoft Visual Studio 2012、SQL Server 2008 、NHibernate。 1、创建项目 (1)     我们新建如下一个项目 ?...每个文件的详细代码在下面介绍 (2)     NH.Data层引用Nhibernate相关的DLL ?... 注意:XML文件的默认“复制到输出目录”为“不复制”,这里需要修改为“始终复制”。...我们可以该文件上点击右键选择属性进行修改。 (2)     NHibernateHelper.cs数据操作辅助类 我们现在可以开始NHibernate了。

90740

C# 数据操作系列 - 11 NHibernate 配置和结构介绍

可以设置一个事务之间的进程级或集群级的二级缓存。 ISession - NHibernate.ISession: 一个单线程、短生命周期的对象,表示从应用程序和数据持久化之间一个连接。...实例状态 NHibernate中,一个可持久化的对象有三种不同的状态,依据与持久化上下文之间的关系不同,其中ISession就是一个持久化上下文。...detached 游离态 该状态的对象是从上下文中分离出来的,有了数据库主键,曾经或现在仍然有一条数据库记录与之对应。...dialect 数据库方言,表示NHibernate连接的数据库是什么,该用哪种格式解析关系映射到数据库SQL语句 default_schema 默认的schema,用来设置连接字符串连接的数据库默认的...show_sql 是否控制台中打印转换的SQL语句,一般调试的过程中会设置为true,用来确认生成的SQL是否正确等。

1.2K20

隐藏了2年的Bug,终于连根拔起,悲观锁并没有那么简单

第一天,把账不平的账户的账务流水、涉及到代码、日志全部捋一遍。这期间还遇到了很多小困难,最终注意克服。 困难一:数据查不动 账务记录表数据太多,上千万的数据,最初的设计者并没有创建索引。...排查问题时,先使用了grep 命令找到出问题交易的账号日志: grep 123 info.log 当大概定位的到日志输出时间了,再利用区间缩小日志范围: grep '2021-11-17 19:23:23...' info.log > temp.log 这里同样使用grep命令查找对应时间区间的日志,并将查找到日志输出到temp.log文件中,然后通过sz命令,下载到本地进行筛选分析。...于是,单元测试中添加了前面的查询,再次执行。哈哈,Bug终于复现了!...的事物管理、多线程、Linux操作、Navicat手动事务、SQL优化、单元测试、Javadoc查阅等。

48720

NHibernate中关于Inverse的理解和使用

项目中NHibernate进行ORMapping,操作数据库变得非常简单,但是NHibernate中有很多特性不是很容易理解,比如Inverse这个功能就是其中的一个。...使用NHibernate进行数据库操作的时候,比如数据插入的时候,经常用到级联功能,比如最常见的就是一个订单对应多个明细行,保存订单时只需要Save订单对象即可,订单下的所有明细行会级联保存。...SQL语句上可以看到明细的区别,默认Inverse为false的情况下,保存OrderItem时,其数据库的字段OrderId是设为null,然后再将Order的Id重新Update到OrderItem...VALUES (@p0, @p1);@p0 = 1000000002 [Type: Int64 (0)], @p1 = 1000000001 [Type: Int64 (0)] 明明应该是往中间表插入2条记录的...,但是这样5-8行却变成了插入4条记录

44930

C#开源资源大汇总

十四、日志工具 log4net是一个可以帮助程序员把日志信息输出到各种不同目标的.net类库。...它可以容易的加载到开发项目中,实现程序调试和运行的时候的日志信息输出,提供了比.net自己提供的debug类和trace类的功能更多。log4net是从java下有卓越表现的log4j移植过来的。...NLog是C#编写的开源日志类库,它的设计思想是使其简单而灵活。NLog让你处理诊断的日志消息,用相关信息扩充消息,依照你的选择格式化日志消息和把日志消息输出到一个或多个目的地。...NHibernate从数据库底层来持久化你的.Net对象到关系型数据库。NHibernate为你处理这些,你不用自己写SQL去数据库存取对象。...NHibernate可以帮助你消除或者包装那些针对特定数据库的SQL代码,并且帮你把结果集从表格式的表示形式转换到一系列的对象去。

2K20

最佳PHP代码审查关键原则与实践技巧

在这个步骤中,我发现能够将代码发布到审查应用程序或暂存服务器,并确认我代码审查中的发现及其实际工作方式是很有帮助的。对于棘手的部分,我也倾向于搜索添加的单元测试。...虽然开发人员承担编写单元测试的主要责任,但不要低估代码审查期间批判性眼光的价值。 缺少测试:是否存在没有相应单元测试的代码块? 边缘用例:测试是否只覆盖预期的场景,还是包括意外的输入和边界条件?...相反,将错误记录到一个文件中,供开发人员进行故障排除,确保这些日志本身受到保护,不受未经授权的访问。当出现错误时,向用户显示通用的、有帮助的错误消息,并记录详细信息以进行内部调试。...检查框架方法,这些方法有助于防止SQL注入。 错误处理:代码是否避免向用户暴露原始错误消息或堆栈跟踪?是否在内部记录错误,以便开发人员进行故障排除?在出现故障时,是否有用户友好的后备机制? 5....这种方法可以整个代码库中实现粒度错误处理。策略性地使用不同的日志级别(调试、信息、警告、错误)。 适当地配置日志记录工具,以根据严重性进行存储或发出警报。最后,仔细考虑显示给用户的错误消息。

11610

DotNetNuke初试水之结合NHibernate开发和导入一个Module

Layer);业务逻辑层(Business Logic Layer);数据访问层(Data Access Layer) 动手实践 从我的个人理解,DNN提供了一个Web网站应该具备的基本功能,内容管理,日志...修改SQL脚本 通过向导产生的Sql建库,存储过程脚本需要根据实际数据库进行修改,修改完毕后手工执行一下 修改MyFirstModule.dnn配置信息 ...DataAccessLayer使用Nhibernate实现,很好支持多种业务数据库和同时很多代码生成器支持代码输出,基本的CRUD操作不需要开发。...代码重构 生成Nhibernate实体类和Xml文件可以使用CodeSmith或是MyGeneration 应用Nhibernate封装好的NHibernate.Repository类库(...Nhibernate实践中有)包括Session管理和CRUD抽象操作。

1.6K20
领券