问题标签 [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.
nhibernate - 使用 nHibernate 2.0 的 Session.Get 时遇到问题在具有复合 ID 的类上
我遇到了一些(我认为)应该很简单但找不到任何明确信息的问题。
在我有三个表的场景中,描述一个人可以拥有多个工作的域:
Person - 有 PersonId,名称
Job - 有 JobId,JobName
PersonJob - 有 PersonId,JobId,YearsOfEmployment
注意:在我的对象模型中,我有代表每个表的实体。我有第三个实体来表示人员/工作关系,因为那里有有用的元数据(YearsOfEmployment),而不仅仅是一个简单的连接表。
那么,如果我知道 PersonId 和 JobId,是否有一种简单的方法可以让我使用会话并返回与这些 Id 匹配的对象?
或者,换一种方式,因为我已经知道主键是否存在脑死,简单的方法我可以将 SQL“SELECT YearsOfEmployment FROM PersonJob WHERE PersonId=1 AND JobId=1”变成类似的东西:
var keys = new {PersonId=1, JobId=2};
PersonJob obj = Session.Get<PersonJob>(keys);
顺便说一句:地图看起来像这样:
orm - 连接表中带有额外列的多对多映射
这是我希望拥有的域:
这是我拥有的架构:
这是一个人为的架构和域,但它与我正在使用的东西几乎相同。我目前通过编写第三个域实体来表示 CertificatesAcquiredByPeople 表,但这对我来说真的很奇怪。
我将如何使用 NHibernate 映射它?我相信 hbm 文件中的组件标签应该做我想要的,但我不太明白。
我的域是否因为我的证书类上有一个 DateAcquired 属性而出现问题?日期实际上只是拥有证书的人的关注点。
[编辑]
我现在更改了域模型以反映需要一个新实体。现在对于映射,我需要 3 个(对于每个实体)映射,还是可以使用 2 个(对于人员和证书)进行映射?
nhibernate - nHibernate 2.0 - 映射复合 ID *和* 多对一关系会导致“无效索引”错误
我有个问题。想象一下这个数据模型:
由于[PersonTag]
不仅仅是一个简单的多对多连接表,我在 nHibernate 中创建了所有三个实体(就像它们在数据模型中一样)。PersonTag
,因此,需要一个复合ID,我已将其映射到这样的类:
我想遍历对象图并能够从检索到的对象中同时查看Person
和对象。所以,我有对象的属性来做到这一点,映射如下:Tag
PersonTag
PersonTag
当我尝试创建一个PersonTag
对象并保存它时,我收到“Invalid index n for this SqlParameterCollection with Count=n”错误。我知道这是因为我已经映射了两次PersonId
andTagId
属性,一次用于复合 ID,一次用于多对一关系。如果我不映射多对一对象,那么一切正常。
有没有办法让我能够基于在同一 nHibernate 实体中建模的同一列建立复合 ID 和多对一关系?
c# - 您如何映射也是 NHibernate hbm xml(或 fluent-nhibernate 类映射)中的主键的组件?
我试图弄清楚如何将组件映射为 nhibernate 中的主键,如果可能的话,也可以在流利的 nhibernate 中映射。
有问题的组件是一组独特的 3d 坐标,这是对象:
SpaceCoordinate 是一个结构体,定义如下:
在流利的 nhibernate 中使 SpaceCoordinate 成为一个组件,我将创建一个像这样的映射类:
但我想知道的是如何使 SpaceCoordinate 组件作为一个整体成为具有唯一约束的主键。我将如何在 Nhibernate xml 或流利的 nhibernate 类映射中映射它?
fluent-nhibernate - 如何在流利的 nhibernate 中将枚举映射为字符串?
是否可以使用 Fluent Nhibernate 将枚举映射为字符串?
nhibernate - 如何使用 NHibernate 查询 SQL 2005 XML 字段?
我的 Microsoft SQL Server 2005 数据库包含一个具有 XML 字段的表,该字段具有一些重要的元数据,在普通 SQL 下,我可以运行以下查询并获取没有设置 UPC 代码的项目列表......不幸的是我我很难使用 NHibernate 的 Criteria API 重新创建此查询:
有什么建议么?
asp.net - Fluent Nhibernate 在 3 个表上映射内部联接
数据结构为:
- Table[Questionnaire] 顶部节点
- Table[QuestionGroup] 只是标题等的分组
- 表[QuestionnaireQuestion]映射[Question]<->[QuestionGroup]的多对多关系和[Questionnaire]<->[Question]的多对多关系
- 表[问题]
出于报告目的,一个问题可以存在于许多问卷/问题组中。QuestionnaireQuestion 表还包含 Question 的一些属性,这些属性可能因调查问卷而异,例如是否需要?验证等。我想不通的是如何映射 Question.Required?。该属性是唯一的,过滤时对问卷调查问卷的问题表中的问卷_id 和问题_id
当我加载问卷时,我提供了一个问卷 ID,然后给我一个 QuestionGroups 列表,每个组都包含一个问题列表(尽管缺少验证属性)。
到目前为止,我的映射是:
nhibernate - NHibernate:使用 Fluent Nhibernate 保存子对象
在我的系统中,我有两个实体 - ShoppingCart 和 ShoppingCartItem。相当通用的用例。但是,当我保存我的 ShoppingCart 时,没有任何项目被保存到数据库中。
在我的对象中,我创建了一个新的 ShoppingCart 对象。
然后,我将从数据库中获取的现有产品添加到开头。
这只是将项目添加到 IList 的简单包装器。
然后我在存储库上调用 SaveOrUpdate
看起来像这样:
我正在使用 Fluent NHibernate 进行映射:
数据库架构 (SQL Server 2005) 也相当通用:
当我保存或更新我的 ShoppingCart 时,为什么没有任何 ShoppingCartItems 也被保存?
请帮忙。
谢谢
本
更新:将其包装在交易中,为我提供了更多信息:
无法将值 NULL 插入到列“ShoppingCartId”、表“WroxPizza.dbo.ShoppingCartItems”中;列不允许空值。插入失败。该语句已终止。
这是因为它是一辆新推车。
nhibernate - 使用外键将一对多集合映射到外键
我正在使用 nhibernate 映射旧数据库,并且在映射关系时遇到了一些问题。
这两个类看起来像这样
像这样的表
两个表之间的关系是 formcode 列。
我现在的映射是这样的
当我运行映射时,假设它试图将表单代码放入问题的 ID 中,我得到一个标识符类型不匹配。不幸的是,我无法更改表格的结构,我不知道如何映射它,任何帮助将不胜感激。
nhibernate - Hibernate/NHibernate 映射文件编辑器
我正在寻找有帮助的编辑器
http://www.hibernate.org/hib_docs/nhibernate/html/mapping.html
内置,并允许以 GUI 方式简单编辑 XML 文件。我意识到有 CodeSmith 和 MyGeneration,但据我所知,这些只是一种方式,并且不允许编辑现有的 HBM 文件。