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

c# - Fluent NHibernate 多对多

我正在使用 Fluent NHibernate,并且在与我的一个类建立多对多关系时遇到了一些问题。这可能是一个愚蠢的错误,但我一直在努力让它工作。无论如何,我有几个具有多对多关系的类。

映射看起来像这样

人: ...

团体:...

当我运行我的集成测试时,基本上我正在创建一个新的人和组。将组添加到 Person.GroupsOwned。如果我从存储库中取回 Person 对象,则 GroupsOwned 等于初始组,但是,如果我检查 Group.Admins 上的计数,则当我取回组时,计数为 0。Join 表具有 GroupID 和PersonID 保存在其中。

感谢您提供的任何建议。

0 投票
2 回答
5841 浏览

nhibernate - NHibernate 在单独的程序集中加入了子类

我有以下解决方案项目结构:

应用程序核心实体

Application.Xtend.CustomerName.Entities

在核心项目中,我有一个实体客户拒绝。在 XTend 项目中,我定义了一个名为xCustomer的子类 Customer 的实体(因为此时缺少更好的名称......)。

这里的想法是我们的​​应用程序中有一个核心域模型。然后,客户可以创建一个新组件,其中包含对我们核心模型的扩展。当扩展程序集存在时,智能IRepository类将返回核心类的子类。

我试图在NHibernate中映射这种关系。使用Fluent NHibernate我能够生成这个映射:

但是 NHib 抛出以下错误:

NHibernate.MappingException:持久类 Application.Entites.xCustomer,找不到 Application.Core.Entites ---> System.TypeLoadException:无法从程序集“Application.Core.Entites”中加载类型“Application.Entites.xCustomer”,版本 = 1.0 .0.0,文化=中性,PublicKeyToken=null'..

这很有意义 xCustomer 没有在核心库中定义。

是否可以像这样跨越不同的程序集?我是不是错误地解决了这个问题?

0 投票
2 回答
7898 浏览

c# - Fluent-NHibernate 是否支持映射到过程?

我一直想知道是否可以让 Fluent-NHibernate 与已经存在的存储过程进行通信,并将结果集的映射分配给我自己的域对象。

Fluent-NHibernate 也可以直接执行程序而不返回结果集吗?

基本上,我一直在考虑使用 Fluent-NHibernate 将过时的 TypedDataSet 模型替换为可以从 DAL 返回简单对象的域驱动设计的含义。如果 Fluent-NHibernate 不能轻松地与 SP 一起工作,我想我最有可能拥有一个组合 DAL,它可以利用 FNH 进行简单的 CRUD 操作,同时让复杂的过程由 Enterprise Library 管理。虽然我认为如果 FNH 不能很好地与 SP 配合使用,那么拥有 2 个竞争 DAL 并不是最佳选择,但我很想听听除了同时使用 EntLib 和 FNH 之外的任何其他想法。

0 投票
2 回答
7943 浏览

c# - Fluent NHibernate - 如何一对一映射子类?

假设我有三个班级。实例化 A 是有效的,但也有特殊情况 B 和 D 是 A 的子类,增加了额外的信息。

我将如何在(流利的)NHibernate 中为此映射文件?

我尝试了以下方法,但它根本不起作用:

0 投票
1 回答
25702 浏览

nhibernate - Fluent NHibernate:如何创建一对多的双向映射?

基本问题:如何在 Fluent NHibernate 中创建双向一对多映射?

细节:

我有一个有很多孩子的父对象。在我的情况下,孩子没有父母是没有意义的,所以在数据库中,我希望父母的外键有 NOT NULL 约束。我正在从 Fluent NHibernate 映射自动生成我的数据库。

我有一个父母有很多像这样的子对象:

这是我开始的映射:

在 Detail 表中,Summary_id 应该为 Not Null,因为在我的情况下,没有附加到摘要对象的 Detail 对象是没有意义的。但是,仅使用 HasMany() 映射会使 Summary_id 外键为空。

我在 NHibernate 文档(http://www.hibernate.org/hib_docs/nhibernate/html/collections.html)中发现“如果需要父级,请使用双向一对多关联”。

那么如何在 Fluent NHibernate 中创建双向一对多映射呢?

0 投票
1 回答
1211 浏览

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

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

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

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

0 投票
1 回答
537 浏览

nhibernate - 结合 .hbm.xml 和 Fluent NHibernate 时出现奇怪的异常 - 有什么想法吗?

所以我根据需要转换我的映射文件(进行更改时,转换为映射)。像这样配置 NHibernate 时的任何:

并运行我的网络应用程序,我得到以下异常:

但是,我所有的集成测试都按预期工作。有任何想法吗?

0 投票
1 回答
4505 浏览

nhibernate - Fluent NHibernate 的默认行为是延迟加载 HasMany收藏?

当我设置流利的映射时,集合的默认值是什么?我需要将它们显式设置为延迟加载,还是默认设置?

0 投票
5 回答
14123 浏览

c# - Fluent NHibernate, joined-subclass mapping

I'm trying to map a joined-subclass scenario using Fluent NHibernate. I have a class Entity defined in the namespace Core, and a class SubClass : Entity in the namespace SomeModule

Now I obviously don't want class Entity to know about its derived types, the SomeModules namespace references Core - not the other way around.

All the examples I've been able to find use something like:

This simply won't work in my situation - I need something akin to the NHibernate xml mapping:

Has anyone achieved this with Fluent NHibernate?

0 投票
1 回答
826 浏览

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

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

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

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

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

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

谢谢