问题标签 [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 回答
2188 浏览

nhibernate - NHibernate - 将 ID 映射到 DB2 身份

我对 NHibernate 很陌生,并且正在尝试通过 ISeries 提供程序连接到 DB2 表。该表有一个作为身份自动生成的 BIGINT 主键。我在映射文件中为 id 的生成器属性尝试了几个值,但都没有成功。表 def 如下所示(字段名称已更改):

映射文件如下所示:

起初,我将生成器类设置为“native”,根据文档,它为 DB2 选择“identity”。使用“本机”或“身份”,当我将生成器类更改为各种其他值时,我得到“PKID 列中不允许空值”以及各种其他错误。

我确定文档中缺少一些小东西,但是有什么方法可以让 NHibernate 获取主键的下一个值,它是 DB2 中的 GENERATED IDENTITY 并在我调用时为我处理它节省()?我是否需要在 NHibernate 可以用来获取下一个值的地方写一个选择?

提前致谢。

0 投票
4 回答
1076 浏览

.net - 是一对一还是组件?休眠映射

假设我有人员和地址类,它们在数据库中有不同的表。

一个人可以有一个地址类。这对我来说是重要的部分。一个人只能有一个地址作为子元素,我想将它们保存在数据库中的不同表中。

通常我知道我需要将它们放在同一张桌子上,但我的场景需要这个。

(而且它看起来像一对多,但我不想只为一个对象收集一个)

和类代码

如您所见,当我获得任何 Person 时,我想亲自获得 Address 属性?但它们在不同的表中。如何进行这种映射?

提前致谢

0 投票
2 回答
1002 浏览

nhibernate - NHibernate 通用组件

如何在 NHibernate 中创建通用组件映射,我有一个类 Pair{virtual T First{get;set},virtual T Second{get;set;}},我试图用类似这样的东西来映射它,但它不起作用

0 投票
1 回答
117 浏览

nhibernate - 使用 NHibernate 映射 items-itemtags-tags 表

假设我有这个数据库设计:

我想把它映射到下面的类

请注意,我不想声明 Tag 类,我只想让 Item 类有一个表示标签的字符串列表。

这可能吗?

0 投票
2 回答
522 浏览

nhibernate - 奇怪的 NHibernate 异常

当我尝试创建 SessionFactory 时,我遇到了一个奇怪的 NHibernate 异常。我已将异常'无法将'NHibernate.Mapping.Bag'类型的对象转换为'NHibernate.Mapping.IKeyValue'的异常范围缩小到公司对象上的以下映射:

这是 GwDbImage 的映射:

Company对象上Images的定义如下:

我知道这很模糊,但有人知道出了什么问题/指出我正确的方向吗?

谢谢

乔恩

0 投票
2 回答
273 浏览

asp.net - 如何将其子项与 Nhibernate 位于同一表中的项映射?

我正在尝试构建一个消息传递系统,为此我有下面的表定义

信息

我在 Message.cs 中有这个

我已经尝试过了,但它给了我主集合中的所有消息和所有答案。

但我不希望答案被视为一条消息(如主要项目)。

如何进行这种映射,它们在同一张表中?

非常感谢你

0 投票
1 回答
1940 浏览

nhibernate - NHibernate - 将同一实体映射到同一数据库中的不同表

假设我们有一个 Employee 实体,它由一些其他实体组成,例如一对多的地址和联系人,以及一些字段(姓名、年龄等)。我们将这个实体映射出来并且可以很好地使用它,将每个部分保存到“Employee”、“EmployeeAddresses”和“EmployeeContacts”表中。

但是,我们几乎将所有该员工的信息用于大型计算,并有一个单独的“EmployeeInput”对象,该对象由相同的 Address 和 Contact 对象列表组成(即 Employee 和 EmployeeInputs 对象都有一个 Address 和 Contact 实体列表)。当我们为以后的审计目的进行计算时,我们需要保存这些信息。我们希望将此 EmployeeInput 实体保存到数据库中的“EmployeeInput”表中。

我们遇到的问题是如何保存地址和联系人列表?我们希望将它们粘贴到“EmployeeInputAddresses”和“EmployeeInputContacts”之类的东西中,但地址和联系人实体已经分别映射到“EmployeeAddresses”和“EmployeeContacts”。

在不创建新的“EmployeeInputAddress”和“EmployeeInputContact”实体以及为每个实体单独映射文件的情况下完成此操作的最简单方法是什么(因为这些字段实际上会一个一个地复制)。换句话说,我们如何将单个实体 Address 映射到两个不同的表,具体取决于它所属的父对象(如果是从 Employee 对象保存的 EmployeeAddresses 表,如果是从 EmployeeInput 对象保存的 EmployeeInputAddresses 表)。

0 投票
1 回答
163 浏览

nhibernate - NHibernate - 这是什么类型的关联?

我在让 NH 持久化我的对象图时遇到了一些麻烦。

我有(类似的)这个:


我正在创建一个新的父级,创建一个新的事件,将新的事件添加到 Parent.Events 并将 Parent.LastEvent 设置为新的事件。

当我告诉 NH 保存父对象时,我收到一个关于需要首先保存的瞬态对象的错误。我假设它是因为 Parent 和 Event 之间的关联尚不清楚。

SQL 需要采用的方式是使用 null LastEvent 插入 Parent,然后插入 Event,然后更新 Parent.LastEvent。

那么我如何让 NH 做到这一点呢?

0 投票
5 回答
46848 浏览

c# - NHibernate - 非空属性引用空值或瞬态值

我得到了这个例外(底部的完全例外):

我做了很多谷歌搜索,似乎最常见的错误原因是关联是双向的,但只设置了一半。如: Insurance.Patient = Patient 被调用但 Patient.Insurances.Add(Insurance) 不是。事实上,我确实有这样的场景,但我在使用它调用 Save 之前检查了该对象,Insurance.Patient 和 Patient.Insurances[0] 都是正确的对象。

此异常似乎引用的另一种可能性是瞬态值。在我的情况下,每个对象都是瞬态的,所以我怀疑我的问题的根源就在这里。但是,现在一切都需要是暂时的,因为尚未保存任何内容。我希望 NHibernate 坚持一些事情,而不是抱怨他们没有坚持下去。

以下是我的映射中的一些片段(流利):

那么,可能是什么问题?


0 投票
2 回答
1713 浏览

class - 如何通过 NHibernate 将多个类映射到一张表?

我有一个 Employee 类,其 Name 属性为 Name 类,Contact 属性为 Contact 类型。Name 类有两个字符串属性:FirstName 和 LastName,Contact 类有 PhoneNumber 和 EmailAddress 等属性。

所有数据都在一个表中,并假设它不能更改。我的地图会是什么样子,这样我就可以根据 id 加载 Employee 并使用适当的值填充 Contact 和 Name 属性?或者这甚至可能吗?

Employee 表具有以下列:EmployeeId、FirstName、LastName,以及各种联系信息。