问题标签 [nhibernate-mapping]

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 投票
1 回答
163 浏览

nhibernate - 如何查看城堡活动记录传递给 NHibernate 的映射配置?

是否可以查看从 activerecord 传递到 nhibernate 的映射配置/映射 xml 文件?

0 投票
2 回答
230 浏览

.net - 如何映射以从 Nhibernate 的主表中获取值?

当我尝试从映射文件中的主表中获取值时,我遇到了一个问题。

我的桌子:

我的课程:

如何获取 FullName 值并映射到 CustomerOrder 流畅接口映射类中的 CustomerName 属性?

0 投票
3 回答
11389 浏览

c# - NHibernate 映射 - 一对一(或一对零)

冬眠者!

我有一个表 [dbo].[Wibble] 和另一个表 [dbo].[WibbleExtended]。

[Wibble] 是主表,[WibbleExtended] 是一个可选表,其中存储了一些其他字段。[WibbleExtended] 表中的条目比主 [Wibble] 表中的条目少得多。我认为这是为了解决一些空间问题(Wibble 有很多行,而 WibbleExtened 有很多列)。

每个表的 ID 都是相同的,并且来自外部源。

IE

是相同的,并且这两个表是如何关联的。

注意我无法更改架构。我把它硬塞到一个我几乎无法控制的遗留系统上。

搜索似乎一对一的映射是有问题的,流行的智慧是使用两个多对一的映射。

我目前的映射是:

问题是我遇到了错误,例如

我环顾四周,这看起来确实是正确的策略,它只是落在了最后的障碍上。

问题是 id 生成器吗?映射的其他方面?

免费肉馅饼以获得正确答案。

编辑:好的 - 这是我通过@James Gregory 解决这个问题的方法。

  1. 将单元测试从 WibbleExtended 测试移至 Wibble 测试类并进行了必要的修改。

  2. 将以下内容添加到 Wibble.hbm.xml

    /li>
  3. 在 Wibble POCO 中添加了相应的属性。

  4. 删除了所有与 WibbleExtended 相关的代码。

  5. 运行测试,全部通过,签入。构建通过。去喝圣诞啤酒(因此我已经过了几天才更新这个!:-))

0 投票
6 回答
10401 浏览

nhibernate - NHibernate:如何在一对一映射上启用延迟加载

nhibernate 中的一对一关系可以延迟加载“假”或“代理”。我想知道是否有人知道一种方法来进行懒惰的一对一映射。

我通过使用映射到私有字段的惰性集并让公共属性返回该集的第一个结果,制定了一个技巧来实现相同的结果。它有效,但不是最干净的代码......

提前致谢!

0 投票
1 回答
3103 浏览

nhibernate - 如何通过多对多将 NHibernate 从表 A 映射到表 A 本身?

请帮忙!我无法弄清楚如何映射以下情况:

我只有一张桌子。

[表] 用户 { id, name }

我的课看起来像这样

每个用户都与其他用户有关系。例如,“用户 A”可以有很多朋友,这些朋友是其他用户。

这应该是什么映射?我认为这应该是多对多的关系,但我真的不知道 HBM 会是什么样子?

谢谢,

0 投票
1 回答
72 浏览

nhibernate - 从代理获取集合时,NHibernate2 查询被连接。这是正确的行为吗?

这是我的课:

这是我的映射(Fluent NHibernate):

问题是当我执行此代码时:

在最后一行,NHibernate 为我生成了这个查询:

问题:为什么查询看起来很连贯?它应该只选择 3 个字段(分别是UserFriendIdUserIdFriendId)对吗?或者 NHibernate 内部发生了什么?

0 投票
1 回答
4477 浏览

c# - NHibernate ISession.save(newTransientEntity) 是否只会返回生成的 Id,但不会更新实体的 Id 属性?

使用 NHibernate.Mapping.Attributes,我有一个实体类,例如:

假设我使用如下代码将瞬态实体添加到持久性上下文中:

我想断言会成功,但实际结果是错误的。我的印象是 save 方法将使用生成的值更新实体的 Id 属性。我已经通过使用 NHibernate 1.2 和 2.0 进行了测试,结果相似。

所以问题是:

  • 这种行为(不更新实体的 ID)是设计使然,还是我的机器中的 NHibernate 编译错误?
0 投票
5 回答
7440 浏览

.net - NHibernate 与字符串主键和关系

我刚刚被这个问题困扰了一个小时,最终我很烦人地发现了这个问题。

情况

我有一个表,它使用一个字符串作为主键,这个表有各种多对一和多对多关系,所有这些关系都与这个主键无关。

从表中搜索多个项目时,所有关系都被带回。但是,每当我尝试通过主键(字符串)获取对象时,它并没有带回任何关系,它们总是设置为 0。

部分解决方案

所以我查看了我的日志以查看 SQL 正在做什么,并且返回了正确的结果。所以我以各种随机的方式尝试了各种事情,最终得出了结论。将字符串传递给 get 方法的情况与数据库中的情况并不完全相同,因此当它尝试将关系项与主要实体匹配时,它什么也没找到(或者至少 NHIbernate 没有因为正如我上面所说,SQL 实际上返回了正确的结果)

真正的解决方案

有没有其他人遇到过这个?如果是这样,您如何告诉 NHibernate 在将 SQL 结果与实体匹配时忽略大小写?这很愚蠢,因为它之前工作得很好,突然之间它开始关注字符串的大小写。

0 投票
1 回答
1355 浏览

nhibernate - 您如何使用 fluent-NHibernate 过滤一对多关系?

我有一组实体,可以使用数据库中的“IsDeleted”标志将它们设置为已删除。

这对于正常的实体集来说很好,但是当我的父级有许多可能具有此标志的子实体时,我希望 NHibernate 能够自动处理选择“IsDeleted”设置为 false 的子实体。

无论如何用fluent-NHibernate来做到这一点?或者我可以添加视图流畅的 XML 映射。

谢谢

0 投票
1 回答
1713 浏览

.net - Nhibernate外键到外键集合映射?

我有一个 Staff 和 e SecuredPage 实体,属性如下

职员

id Name LastName Level // SecuredPage.RoleId

安全页面

id PageId RoleId // Staff.Level

我想在 Staff 实体中有一个 SecuredPage 的集合,所以它是一对多的,但我不知道如何在映射中处理它。

员工.hbm.xml

使用上面的代码 Nhibernate 从 SecuredPage 表中获取所有记录,其中

但我希望它是

由于某些原因,我没有创建角色实体,这就是为什么我直接尝试根据其级别(角色)为员工获取安全页面

我希望我能告诉你我的问题。我检查了 Nhibernate 指南,阅读了有关集合映射的所有内容,但我无法弄清楚。

谢谢