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

.net - 单独程序集中子类时的NHibernate继承映射

假设核心项目有一个基础实体,每个插件都可能扩展基础实体。

解决方案结构:

有什么方法可以使用 NHibernate 子类来实现这个映射?

0 投票
1 回答
1211 浏览

nhibernate - NHibernate:使用 Fluent NHibernate 处理中间表的最佳方式?

您将如何在 Fluent NHibernate 中映射以下内容?

请参阅“18.3. 客户/订单/产品”

http://www.hibernate.org/hib_docs/nhibernate/html/example-mappings.html

0 投票
2 回答
11824 浏览

nhibernate-mapping - NHibernate 多对多

我有一个遗留数据库,我正在尝试创建一个 NHibernate DAL。我在多对多表上的映射有问题。

数据库表:

  • studio_Subscribers
  • studio_Groups(包含订阅者的 IList)
  • studio_Subscribers_Groups- 带有主键的多对多表

问题是当我创建一个SubscriberGroup实例并用订阅者填充它时,它们会保存到studio_Subscribers表中,但不会保存到多对多表中。

我想不通怎么了?

studio_Subscribers表映射:

studio_Groups表映射:

0 投票
1 回答
983 浏览

nhibernate - Nhibernate ValueType 集合作为 DB 中的分隔字符串

我有一个使用 Nhibernate 映射的遗留数据库。并且在几个位置,列表 och 字符串或域对象被映射为数据库中的分隔字符串。值类型案例中的“string|string|string”和引用类型案例中的“domainID|domainID|domainID”。

我知道我可以在类上创建一个虚拟属性并映射到该字段,但我想以一种更简洁的方式来完成它,例如使用EnumStringType类将 Enums 映射为其字符串表示形式时。

IUserType 是去这里的方式吗?

提前致谢/约翰

0 投票
1 回答
826 浏览

c# - 这种映射可以用(流利的)NHibernate 完成吗?

我有一个事件表,其目标是存储网站用户所做的操作。一个动作基本上改变或在表 X 中创建一个新行。这将允许我存储用户完成的所有动作的历史记录。因此,事件包含:

  • 主键列
  • 描述事件的文本(例如:“发表评论”)
  • 如果需要,一个鉴别器列
  • 另一个表 A 的外键列
  • 另一个表 B 的外键列
  • ……
  • 另一个表的外键列 N

Events 表中的一行将只设置一个外键列,所有其他列都将为空(因此它们都可以为空)。该表的行为类似于事件所涉及的实际表的间接表。我不知道是否需要鉴别器,因为所有信息都包含在外键列中。表 A 到 N 可以是任何东西。如果需要,它们的域模型类可以有一个公共接口(IEventRecordable)。

我的问题是:Events 表和 Event 类之间是否可以映射?使用流利的 nhibernate 是否特别可行?可以不用创建很多 Event 的派生类(我不想创建那么多空的子类)就可以做到吗?理想情况下,Event 类如下所示:

领域模型类中的很多类都可以实现 IEventRecordable(主要是一个空接口)。它可以是 User 表或 BlogComment 表...

谢谢

0 投票
1 回答
8616 浏览

c# - 具有类层次结构的 NHibernate 映射,其基类是抽象的,鉴别器不是字符串

以下是域模型类:

请注意,父类是抽象的,当需要使用流利的 nhibernate 进行映射时,这给了我一些困难。我的鉴别器是一个字节(数据库中的tinyint)。因为它不是字符串,我无法在基类上设置鉴别器值,所以这不起作用(取自 BaseClass 的映射类):

我得到的错误信息是:

类初始化方法 UnitTest1.MyClassInitialize 抛出异常。NHibernate.MappingException:NHibernate.MappingException:无法将鉴别器值格式化为实体 BaseClass 的 SQL 字符串 ---> System.FormatException:输入字符串的格式不正确..

以下帖子似乎解释了会发生什么。他们用 xml 提供了一个解决方案,但没有用流利的 nhibernate: http: //forum.hibernate.org/viewtopic.php? t=974225

谢谢您的帮助。

0 投票
1 回答
2232 浏览

c# - 在 NHibernate 中规范化 EnumStringType

我目前在映射如下的 NHibernate 中使用枚举..

除了数据库远未标准化之外,它工作得很好,People 表中的每一行都有一个包含四个文本字符串之一的列。我现在已经把它分成了一个新表,但我不确定如何在 NHibernate 中创建映射。我的第一直觉只是,<many-to-one>但我不希望这个枚举成为它自己的实体,我基本上只需要 NHibernate 做一个简单的连接来附加额外的列。

作为权宜之计,我刚刚创建了一个工作正常的视图,但我宁愿抽象层位于我的 NHibernate 映射中,而不是模式中。

0 投票
1 回答
1374 浏览

c# - 使用 nHibernate 在字段中存储逗号分隔的列表

我正在使用 C# 和 nHibernate 为我的数据库持久性构建一个博客。我想让条目可标记,所以我有一个标签属性的 IList。但是如何将其映射到数据库中单个列中的逗号分隔列表?

我想避免为标签使用单独的表格,而只是将它们作为单独的列表保存在一列中。所以我基本上是在尝试将数据库中的逗号分隔列表映射到 IList 属性。这在 nHibernate 中可能吗?

0 投票
1 回答
1038 浏览

nhibernate - 在 NHibernate 中使用中间表上的附加数据

我正在从事一个项目,该项目用于将有关产品的信息输入到文档中。一个部分有一个表格,可以根据特定产品的需要多次填写。然后可以在多个相关文档中共享此表格上的信息。典型的多对多情况。不同之处在于,在中间表上,我想为该特定文档的该表单条目存储特定信息。

以下是一些表定义来说明这一点:

还有一些课程:

作为与 Document 的多对多关系的一部分,在读取表单时,是否有一种方法可以创建支持读取附加数据的映射?加载具有多对多关系的数据时是否需要使用存储过程?我仍然需要能够加载 Form 对象而不将它们作为文档的一部分,但是一旦将它们添加到文档中,我需要它们具有基于一些简单规则生成的数字。但这个数字显然是特定于文件的。因此,虽然下一个文档可能使用相同的表单数据,但它需要一个新编号。

关于如何实现这一点的任何建议?

0 投票
1 回答
1004 浏览

.net - 我们可以在 Fluent NHibernate 中自定义主键列的名称吗?

当我在 Fluent NHibernate 中工作时,我感到非常惊讶。我得到了具有主键列名称的旧数据库与域模型中的属性不同。我确信我可以使用这个映射文件:

但是我如何在 Fluent NHibernate 映射中真正得到这个映射呢?