问题标签 [nhibernate]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
591 浏览

.net - 解决 Spring.NET 和 NHibernate 程序集之间的不兼容问题

我正在尝试使用 NHibernate 和 Spring.NET 开发一个 .NET Web 项目,但我被卡住了。Spring.NET 似乎依赖于不同版本的 NHibernate 程序集(也许它需要 1.2.1.4000 而我的 NHibernate 版本是 1.2.0.4000)。

我最初使用“bindingRedirect”标签解决了类似的问题,但现在即使这样也停止了工作。

有没有简单的解决方案来解决这些图书馆间的关系?

0 投票
4 回答
24448 浏览

c# - Fluent NHibernate 多对多

我正在使用 Fluent NHibernate,并且在与我的一个类建立多对多关系时遇到了一些问题。这可能是一个愚蠢的错误,但我一直在努力让它工作。无论如何,我有几个具有多对多关系的类。

映射看起来像这样

人: ...

团体:...

当我运行我的集成测试时,基本上我正在创建一个新的人和组。将组添加到 Person.GroupsOwned。如果我从存储库中取回 Person 对象,则 GroupsOwned 等于初始组,但是,如果我检查 Group.Admins 上的计数,则当我取回组时,计数为 0。Join 表具有 GroupID 和PersonID 保存在其中。

感谢您提供的任何建议。

0 投票
2 回答
3340 浏览

nhibernate - Strict vs NonStrict NHibernate 缓存并发策略

这个问题是关于NHibernate二级缓存的ReadWrite和NonStrictReadWrite缓存并发策略的区别。

据我了解,当您拥有分布式复制缓存时,这两种策略之间的区别是相关的- nonstrict 不能保证一个缓存具有与另一个缓存完全相同的值,而严格的读/写应该 - 假设缓存提供程序确实适当的分布式锁定。

我不明白的部分是,当您拥有单个缓存或分布式分区(非复制)缓存时,严格与非严格的区别是如何相关的。可以相关吗?在我看来,在非复制场景中,时间戳缓存将确保不提供过时的结果。如果它可能是相关的,我想看一个例子。

0 投票
1 回答
1197 浏览

c# - 使用 NHibernate 的用户定义字段

我需要将用户定义的字段功能添加到使用 NHibernate 的 asp.net c# 应用程序。

用户必须能够“动态地”在系统中的多个对象中添加和删除字段,最好不要出现任何系统停机时间。

一个重要的限制是用户不能更改数据库架构 - 也就是说,我可以添加支持此功能所需的任何字段/表,但是当用户添加或删除字段时,他无法更改数据库架构.

编辑:我还必须按用户定义字段的值进行排序和过滤。

我知道如何在 c#/SQL 中使用键/值表执行此操作,但我不知道如何使用 NHibrenate 执行此操作(包括按用户定义的字段进行过滤和排序)

0 投票
2 回答
2183 浏览

nhibernate - 如何从 NHibernate 映射文件生成“迁移”DDL?

我在我的项目中使用 NHibernate 2 和 PostgreSQL。SchemaExport 类在为数据库生成 DDL 方案方面做得很好,但在第一个应用程序之前它就很棒。

有没有办法使用 NHibernate 映射文件生成“迁移”DLL(一批“ALTER TABLE”而不是 DROP/CREATE 对)?

0 投票
6 回答
28771 浏览

sql - 如何选择 nHibernate 子查询结果的 Count(*)

为了在 nHibernate 中分页查询,我需要执行以下操作:

我尝试了以下方法,

我得到一个 nHibernate 异常,说我无法将 Object 转换为 int32。

关于所需语法的任何想法?

编辑

子查询使用不同的子句,我不能用 e.ID,e.Name 替换,Count(*)因为Count(*) distinct它不是有效的语法,而且distinct count(*)没有意义。

0 投票
7 回答
3188 浏览

security - 使用 NHibernate 时实现安全性的最佳实践是什么?

传统主义者认为,与使用 NHibernate 等对象关系映射 (ORM) 框架相比,存储过程提供了更好的安全性。

为了反驳这个论点,NHibernate 可以使用哪些方法来确保适当的安全性(例如,防止 sql 注入等)?

每个答案请只提供一种方法

0 投票
2 回答
12312 浏览

nhibernate - 如何在 nHibernate 中完全禁用缓存?

如何在 nHibernate 中完全禁用缓存?

0 投票
3 回答
14833 浏览

nhibernate - 您如何处理 NHibernate 中的并发性?

您如何使用 NHibernate 支持乐观/悲观并发?

0 投票
3 回答
2563 浏览

sql - NHibernate 事务和竞争条件

我有一个 ASP.NET 应用程序,它使用 NHibernate 在用户操作时以事务方式更新一些表。涉及到一个日期范围,其中只能对表格“预订”进行一个条目,以便指定排他日期。

我的问题是如何防止竞争条件,即两个用户操作几乎同时发生并导致多个条目进入“预订”>1 日期。我不能在调用 .Commit() 之前检查,因为我认为这仍然会导致竞争条件?

我所能看到的只是在提交后进行检查并手动回滚更改,但这让我的嘴巴感觉很糟糕!:)

booking_ref (INT) PRIMARY_KEY AUTOINCREMENT

预订开始(日期时间)

预订结束(日期时间)