问题标签 [fluent-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 投票
7 回答
25832 浏览

nhibernate - 您如何使用流畅的 NHibernate 将枚举映射为 int 值?

问题确实说明了一切,默认情况下它映射为 astring但我需要它映射为int.

如果这有什么不同,我目前正在使用它PersistenceModel来设置我的约定。提前致谢。

更新 发现从主干获取最新版本的代码解决了我的问题。

0 投票
4 回答
33754 浏览

fluent-nhibernate - 在 Fluent NHibernate 中映射复合键

我是 Fluent NHibernate 的新手,一直无法弄清楚如何映射复合键。

我怎样才能做到这一点?我需要采取什么方法?

0 投票
3 回答
1767 浏览

nhibernate - 是否可以为 Fluent NHibernate Automapping 使用私有字段约定?

如何使用流畅的 NHibernate AutoPersistenceModel 映射到私有字段?

AutoPersistence 模型是否有字段约定,或者我是否必须为具有字段的类使用单独的映射?

0 投票
2 回答
263 浏览

nhibernate - 从多个实体的集合中级联删除

我有三个实体:客户、设备和 LocationTag。

客户有一个 LocationTag 列表(只不过是一个 ID 和一个描述)。他们还有一个设备列表。

设备使用客户 LocationTag 的一个子集进行标记,因此设备也有一个 LocationTag 列表(但仅限于客户的)。

如果我从客户列表中删除 LocationTag,我希望它也从设备中的 LocationTag 列表中级联删除。目前,我让它工作,但在域对象类中使用手动代码,但在我看来违反了 DRY。

是否可以通过 Fluent NHibernate 映射来实现这一点?

简化的 Fluent NHib 映射:

顾客

设备

位置标签

0 投票
2 回答
10007 浏览

nhibernate - 如何在 FluentNHibernate 中创建复合 UNIQUE 约束?

我知道我可以Map(x => x.GroupName).WithUniqueConstraint()为一个单一的财产。

但是如何在 fluent nHibernate 中创建复合唯一约束(其中唯一约束对两列的组合进行操作)?

0 投票
1 回答
4865 浏览

.net - NHibernate:无法成功设置延迟加载

我有一个表 Parent 和一个表 Child。Child 包含 Parent 表的外键,创建一对多关系。这是我用 fluent NHibernate 定义的映射的一部分:

如您所见,我已经在关系上设置了 LazyLoad。另请注意,在我的模型类中,所有属性都设置为虚拟。

现在进行简单查询:

并且生成的SQL:

如您所见,它在 Parent 表上进行连接并选择其字段(id 和 description)。但是,既然我要求延迟加载,为什么它会这样做呢?

现在,如果我将查询更改为:

生成了 2 个 sql 查询:

这对我有好处:不加入,不查询父表。但我也得到了第二个:

再次查询 Parent 表。

这 2 个查询是在行期间生成的:

我完全不知道这里发生了什么。有人可以帮忙吗?

0 投票
2 回答
1890 浏览

c# - 如何为作为唯一列集的多值组件创建 NHibernate 映射文件?

我正在使用 NHibernate 和 Fluent NHibernate 为域对象创建映射文件(尽管我不在乎答案是否使用流利的 NHibernate 或 xml hbm 语法)。而且我在弄清楚如何指定表示域对象中的组件的一组列是唯一的时遇到了麻烦。

这是域对象:

这是我遇到问题的组件:

不要担心SpaceObject AtLocation这个问题的目的。

所以我知道如何用 SpaceCoordinate 制作一个组件,但我想制作它,以便不能重复插入同一组坐标。为了做到这一点,我想让组件作为一个整体独一无二。

为了让您了解我正在尝试的方向,我将向您展示我对映射类的了解:

这个 Fluent NHibernate 映射的问题在于它没有将唯一约束共同应用于 SpaceCoordinate 的值。请注意,我并不是要单独将每个设置为唯一的,那样限制性太强了。

那么,您将如何使用 hbm 或 fluent 映射文件进行映射呢?

任何帮助将不胜感激,感谢阅读!

0 投票
2 回答
967 浏览

nhibernate - 使用 Fluent NHibernate 命名为“Order”的 DB 列

我发现我正在处理的遗留数据库的一个表有一个名为“Order”的列。不幸的是,我无法更改数据库结构。
我流利的 ​​NHibernate 类看起来像

我不知道问题是 FluentNH 还是 NHibernate 本身,但我可以确认问题出在“订单”保留名称上。

如何解决这个问题?

更新:按照建议输入 [Order] 表格有效。谢谢!
但现在我只链接到 SQL2005?

0 投票
2 回答
2900 浏览

nhibernate - NHibernate 不会从会话中驱逐对象

我正在使用 Fluent NHibernate 映射 ProductCategory 树,一切正常,直到我尝试遍历从数据库返回的树以确保它正确保存和检索。

这是我的测试方式:

  1. 实例化 4 个类别:饮料、啤酒、淡啤酒和黑啤酒
  2. 将啤酒添加到饮料中,然后将淡啤酒和黑啤酒添加到啤酒中。
  3. 保存饮料(级联设置为 AllDeleteOrphan)
  4. 刷新会话,它会保留整个树
  5. 从会话中逐出每个 ProductCategories
  6. 从数据库加载饮料
  7. 检查加载的对象(fromDB)是 EqualTo 但不是 SameAs Beverages。
  8. 检查 fromDB 是否只有一个子 ProductCategory
  9. 检查 fromDB 中唯一的孩子是 EqualTo 但不是 SameAs Beer

测试失败,因为孩子是 SameAs 啤酒。这意味着它实际上并没有从数据库中加载对象,因为它仍在某个地方的 NHibernate 会话中。

任何见解将不胜感激。

编辑:回应肖恩的以下评论。我正在使用内存中的 SQLite 数据库,因此一旦会话/连接关闭,数据库就会被吹走。

0 投票
1 回答
2024 浏览

linq - 流畅的 Nhibernate 和 Linq(未找到属性)

我试图让一个基于 S#arp 架构的网络应用程序工作。目前,我的实体有以下代码。

这是使用 Fluent NHibernate 映射的,如下所示

我使用非常有用的 S#arp 基础存储库类创建了一个非常简单的存储库。

我可以在数据库中创建实体并返回所有记录。当我尝试测试 FindByName 方法时,出现以下错误。

NHibernate.QueryException:无法解析属性:名称:Model.Events.EventBase

有没有人有任何想法?是我的映射有问题吗?

谢谢,