nhibernate相关内容

每个实体的通用存储库或特定存储库?

背景 在我工作的公司,我被要求更新旧的 MVC 应用程序并为 SQL 数据库实现存储库模式.我已经使用 Entity Framework Database-First 创建了数据库的上下文并获得了 23 个实体. 第一个问题 我是否需要为每个实体创建一个存储库或为上下文实现一个通用存储库?我问这个是因为我在搜索互联网时发现了以下内容: 每个域一个存储库 您应该将存储库 ..
发布时间:2021-12-08 19:57:47 C#/.NET

何时在 NHibernate/Hibernate OneToMany 关系上使用 inverse=false?

我一直在尝试掌握 Hibernate 的 inverse 属性,它似乎只是概念上困难的事情之一. 我得到的要点是,当您有一个使用 一对多 映射的具有子对象集合的父实体(例如父实体)时,在映射上设置 inverse=true告诉 Hibernate '另一方(孩子)有责任更新自己以维护其表中的外键引用'. 这样做似乎有 2 个好处,即在您的代码中将子项添加到集合中,然后保存父项(使用级联 ..
发布时间:2021-12-08 19:23:14 其他开发

Criteria.DISTINCT_ROOT_ENTITY 与 Projections.distinct

我对 Hibernate 还很陌生.我发现我们可以使用以下两种不同的方式获得不同的结果.谁能告诉我它们之间有什么区别?什么时候使用一个? Projections.distinct(Projections.property("id")); 对比 criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY); 解决方案 虽然名称相似 ..
发布时间:2021-12-08 18:57:31 其他开发

(N)Hibernate 中的一级和二级缓存是什么?

谁能简单解释一下Hibernate/NHibernate中的一级和二级缓存是什么? 解决方案 1.1) 一级缓存 一级缓存始终与会话对象相关联.Hibernate 默认使用这个缓存.在这里,它处理一个一个又一个的交易,意味着不会处理一个交易很多次.主要是它减少了它需要的 SQL 查询的数量在给定的事务中生成.那不是更新之后在事务中完成的每一次修改,它都会更新事务仅在交易结束时. ..
发布时间:2021-12-08 18:50:04 其他开发

使用 SQLite 的问题:内存:与 NHibernate

我使用 NHibernate 进行数据访问,有一段时间我一直没有使用 SQLite 进行本地集成测试.我一直在使用一个文件,但我想我会退出 :memory: 选项.当我启动任何集成测试时,数据库似乎已创建(NHibernate 吐出表创建 sql)但与数据库交互会导致错误. 有没有人让 NHibernate 使用内存数据库?甚至有可能吗?我使用的连接字符串是这样的: Data Source ..
发布时间:2021-12-08 18:38:00 数据库

使用 Oracle 时如何使用 Fluent NHibernate 实现批量提取?

我试过在 Oracle 中使用 Future 特性,但 NHibernate 不支持它. 我已经阅读了一些关于批量获取功能的文章:http://docs.huihoo.com/hibernate/nhibernate-reference-1.2.0/performance.html 我如何将它与 Fluent NHibernate 一起使用?应该怎么配置? 解决方案 给你答案如 ..
发布时间:2021-12-06 08:14:38 C#/.NET

如何使用 MySQL 配置流畅的 nHibernate

我正在尝试将 nHibernate 配置为使用 MySql 数据库.我找到了 mssql 和 sqlite 的示例,但没有找到 mysql 的示例.那么,我该如何更改它以便它使用 mysql: Fluently.Configure().Database(MsSqlConfiguration.MsSql2005.ConnectionString(c =>c.FromConnectionString ..
发布时间:2021-11-30 20:00:55 C#/.NET

使用 Autofac 管理 NHibernate ISession

关于 Autofac 如何帮助管理 NHibernate ISession 实例(在 ASP.NET MVC 应用程序的情况下),是否有人有任何提示或最佳实践? 解决方案 我不太熟悉 NHibernate 会话应该如何处理.也就是说,Autofac 具有出色的实例生命周期处理(范围 和 确定性处置).一些相关资源是这篇文章 和 这个问题.由于您在 ASP.Net MVC 领域,请确保您还查 ..
发布时间:2021-11-30 19:59:59 其他开发

WinForm 应用程序中的 NHibernate 和 AUTOFAC

我正在寻找一个很好的教程来在 WinForm 应用程序中使用 NHibernate 配置 AUTOFAC,在创建表单时注入 ISession,并在表单关闭时处理 ISession. 我发现了很多 MVC 和 ASP.NET 示例,但没有一个使用 WinForm. 你能指出我正确的方向吗? 解决方案 我会这样做 公共类FormFactory{只读 ILifetimeScope ..
发布时间:2021-11-30 19:56:25 C#/.NET

NHibernate 拦截器审计插入的对象 ID

我正在使用 NHibernate 拦截器将有关更新/插入/删除的信息记录到我的各种实体中. 记录的信息中包括实体类型和修改实体的唯一 ID.在 NHibernate 映射文件中,唯一的 Id 被标记为 . 明显的问题是,当使用 IInterceptor.OnSave() 记录插入操作时,实体的 ID 尚未分配. 如何在记录审计信息之前获取插入实体的Id? (我已经研究了 N ..
发布时间:2021-11-30 16:52:12 其他开发

假/真对 IPreInsertEventListeners 真正意味着什么?

我最近发现了如何使用 NHibernate.Event 中的 IPreDeleteEventListener、IPreInsertEventListener 和 IPreUpdateEventListener 审计实例代码> 命名空间. 然而,它仍然让我感到困惑,这些事件将在成功或不成功的终结中返回什么. 例如,让我们看看 Ayende 的博客文章,该文章位于此处: NHiber ..
发布时间:2021-11-30 16:50:19 其他开发

审计日志记录

您能否提供一些使用 NHibernate 进行审计登录的示例(ASP.Net+C# codd,而不是 java 代码) 解决方案 事件侦听器比拦截器更适合审计信息.这是一个很好的例子来自 ..
发布时间:2021-11-30 16:50:11 其他开发

审计日志策略

我正在尝试确定在我的应用程序中审核日志记录的最佳方法.日志的主要原因是报告事件(更改)的顺序. 我有一个对象层次结构,我需要在以后某个层次结构的任何部分发生变化时创建报告. 我认为我有三个选择: 为每个表创建一个日志,从而匹配对象的层次结构,然后为报告创建一个视图. 扁平化层次结构和非规范化表格,使报告更容易 - 简单的选择语句. 有一个日志表,并为每个更改记录一条记录,这使 ..
发布时间:2021-11-30 16:49:01 其他开发

NHibernate和SqlServer中的数据审计

我在一个项目上使用 NHibernate,我需要做数据审计.我在 codeproject 上找到了 这篇文章,其中讨论了 IInterceptor 接口. 您首选的数据审核方式是什么?你使用数据库触发器吗?您是否使用了与文章中讨论的内容类似的内容? 解决方案 对于 NHibernate 2.0,您还应该查看 事件监听器.这些是 IInterceptor 接口的演变,我们成功地将它们用 ..
发布时间:2021-11-30 16:46:51 数据库

NHibernate - 无需延迟加载整个对象即可访问关联对象的 ID

我有两个关联的业务对象 - A 和 B.关联是 (A->B) 多对一,B.Id 是 A 中的外键(所以 A 在数据库中有 A.B_id). 我使用了 lazy=true 并解决了我的大部分问题,但是在 A 的 ToString 中,我还想打印 A.B.Id,我应该在没有进一步访问数据库的情况下打印它.但是访问 A.B 会激活代理,并且由于这不在打开会话的上下文中,因此会引发异常. 一个 ..
发布时间:2021-11-30 12:44:44 其他开发

使用 NHibernate 支持 AWS Aurora 故障转移功能的 .Net 应用程序驱动程序

我正在将我的数据库从 MSSQL 迁移到 Aurora (MYSQL).该应用程序使用 .net 和 NHibernate.我们为 MYSQL“MySql.Data"尝试了 Nhibernate 驱动程序,它适用于所有用例,但故障转移.当发生故障转移时,连接不会重置,它会不断尝试从写入器集群连接到旧 IP,因此所有写入调用都失败,但异常“MySQL 服务器正在使用 --read--only 选项运 ..
发布时间:2021-11-27 08:59:52 C#/.NET

NHibernate 中只读列表的最佳实践是什么

我正在处理的域模型具有根聚合和子实体.类似于以下代码: class 顺序{IList行{get;set;}}订单行类{} 现在我想让我的订单控制线路.类似的东西: class 顺序{OrderLine[] 行 {get;}void AddLine(OrderLine line);} 此时我们使用以下模式: class 顺序{私有 IListlines = new List();Order ..
发布时间:2021-11-18 03:32:14 其他开发

当底层数据库有关系时,系统使用来自另一个系统的 WCF 服务

这是我在许多系统中都遇到过的一个问题,但这是一个很好的例子.与一个系统何时消费另一个系统的WCF服务有关,每个系统都有自己的数据库,但两个数据库之间存在关系. 我们有一个中央数据库,用于保存公司所有文件的记录.该数据库包括文档和文件夹表,它模仿 Windows 文件结构.NHibernate 负责数据访问,域层处理逻辑(验证文件名/同一文件夹中没有相同的文件名等),服务层位于其上,服务名为“ ..
发布时间:2021-11-17 03:00:44 其他开发

放弃 ActiveRecord 和 NHibernate——如何重新架构?

我有一个 MVC3 NHibernate/ActiveRecord 项目.项目进展顺利,我的模型对象(主要是三个或四个类的巨大层次结构)得到了一些使用. 我的应用程序是基于分析的;我存储分层数据,然后将其切片,以图表形式显示等,因此实际关系并没有那么复杂. 到目前为止,我还没有从 ORM 中获益多少;它使查询变得容易 (ActiveRecord),但我经常需要比完整对象更少的信息,而且 ..
发布时间:2021-11-17 02:50:59 其他开发

将 ORM 合并到(半)SOA 架构中

我正在探索 ORM 的产品(专注于 NHibernate,考虑所有选项),并确信使用 ORM 可能对我们的某些项目有很大好处——但是我很难想象如何它会在我们的系统中播放. 我的理解是 ORM 最适合用于将数据库和业务逻辑粘合在一起.这假设业务逻辑可以访问数据库,但在我们的系统中,我们有网络服务卡在中间. 我们当前的系统相当简单.我们是 .NET 直通并拥有: 数据库.带有表格.. ..
发布时间:2021-11-17 02:49:53 其他开发