这个方法是最常用的,一共有4个重载的方法
void Delete(object obj);
int Delete(string query)
int Delete(string query, object value, IType type);
int Delete(string query, object[] values, IType[] types);
这几个重载方法中,第一个方法是基于现有对象的删除操作,其余是使用query语句查询获得对象,再逐个删除的,如果使用批量删除时,效果不太理想
int Delete(string query, object[] values, IType[] types); 的用法如下:
DateTime start = new DateTime(2000,1,1);
DateTime end = new DateTime(2001,1,1);
Session.Delete("from OperLog operlog where operlog.LogTime between ? and ?"
, new object[] { start, end }
, new IType[] { NHibernateUtil.DateTime, NHibernateUtil.DateTime });
Session.Flush();
方法二:Session. CreateSQLQuery()
ISQLQuery CreateSQLQuery(string queryString);
IQuery CreateSQLQuery(string sql, string returnAlias, System.Type returnClass);
IQuery CreateSQLQuery(string sql, string[] returnAliases, System.Type[] returnClasses);
这个方法是直接执行SQL语句的不需要Session.Flush,效率是最高的
ISQLQuery qry = Session.CreateSQLQuery("delete from operlog where logtime between :a and :b");
qry.SetParameter("a", start);
qry.SetParameter("b", end);
qry.ExecuteUpdate();
但使用该方法后,之前Session缓冲区中已经载入的对象还在,需要额外处理。
相关推荐
9. **批量操作**:对于需要大量数据操作的场景,NHibernate 提供了批量插入、更新和删除的优化策略。 10. **版本控制**:通过乐观锁定或悲观锁定机制,NHibernate 可以帮助处理并发控制,防止数据冲突。 这个...
NHibernate是.NET平台上的Java Hibernate的移植版,它提供了对关系数据库的强大抽象,允许开发者用.NET类来表示数据库中的表,并通过对象的方法来执行CRUD(创建、读取、更新、删除)操作。这样,开发者无需直接编写...
- 使用Session的BeginTransaction()、Commit()和Rollback()方法来管理事务,确保数据一致性。 9. **性能优化** - **缓存**:Nhibernate提供了一级缓存(Session级)和二级缓存(SessionFactory级),可配置缓存...
- 批量操作:利用批处理功能批量插入、更新或删除数据。 通过学习和实践Nhibernate,开发者能够更高效地处理.NET应用中的数据库操作,同时提高代码的可维护性和可扩展性。在CSNhibernate.zip和Nhibernate.zip提供...
它提供了添加、更新、删除对象的方法,并且在事务中管理这些操作。 2.3 Transaction:事务管理是NHibernate的重要部分,它确保数据的一致性和完整性。通过Session的BeginTransaction、Commit和Rollback方法,可以...
在这个项目中,我们可以通过执行相同的业务逻辑,但分别使用NHibernate和iBatis作为数据访问层,对比它们处理相同数量请求的时间消耗,从而评估它们的性能差异。 测试可能包括以下几个方面: 1. **插入性能**:比较...
通过一个简单的示例项目来演示如何设置 NHibernate 环境,并完成基本的 CRUD(创建、读取、更新、删除)操作。 - **环境搭建**:指导读者安装必要的组件,配置 NHibernate 的运行环境。 - **第一个 NHibernate 应用...
- 使用批处理:批量处理多个对象的保存、更新和删除操作,减少数据库连接开销。 - 合理使用懒加载:避免在不需要时加载大量数据。 - 避免N+1查询问题:通过一次查询获取关联数据,而不是多次单独查询。 九、高级...
NHibernate 是一个开源的对象关系映射(ORM)框架,它为.NET Framework 提供了强大的数据持久化解决方案。在本教程中,我们将深入探讨NHibernate 2.0版本,这是一个广泛使用的版本,它引入了许多改进和新特性,以...
- **批量更新/删除**:执行高效的大规模数据操作。 #### 性能优化与最佳实践 为了确保使用NHibernate的应用程序能够高效运行,需要注意以下几点: - **合理使用缓存**:正确配置一级缓存和二级缓存,避免不必要的...
3. **Session**:Session是Nhibernate的工作单元,它是与数据库交互的主要接口,负责对象的持久化操作,如保存、更新、删除和查询等。 二、Nhibenate配置 1. **配置文件NHibernate.cfg.xml**:这是Nhibernate的主要...
3. 批量操作:利用Batch Size进行批量插入、更新和删除,减少数据库交互次数。 七、其他特性 1. 异步操作:支持异步编程,提高并发性能。 2. 持久化策略:包括懒加载(Lazy Loading)和立即加载(Eager Loading),...
NHIBERNATE - 符合.Net习惯的关系数据库持久化 NHibernate参考文档 2.0.0 -------------------------------------------------------------------------------- 目录 前言 1. 第一个NHibernate应用程序 1.1. ...
- **批量操作**:提高数据插入、更新和删除的效率。 #### 三、案例分析 本书通过70个强大实用的示例菜谱,详细介绍了如何在NHibernate生态系统中使用各种解决方案: **1. 基础配置与设置** - 配置NHibernate的...
NHibernate是一款强大的对象关系映射(ORM)框架,主要用于.NET平台,它简化了数据库与应用程序之间的数据交互。这篇文档将引导你深入理解如何使用NHibernate,以及如何编写HQL(NHibernate查询语言)语句。 一、...
Nhibernate简化了数据库操作,消除了大量的SQL代码,并且提供了数据持久化的解决方案。在这个“Nhibernate使用讲解”中,我们将深入探讨其核心概念、事务管理、基本的CRUD操作以及数据加载策略。 **一、Nhibernate...
Nhibernate支持批量操作,如批量插入、更新和删除,以及二级缓存,以提高性能。例如,使用批处理插入: ```csharp var batchSize = 20; foreach (var batch in userModules.Batch(batchSize)) { using (var tx = ...