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

nhibernate - 如何在 Fluent NHibernate 中按命名空间添加映射

在我的应用程序中,我需要与多个数据库通信。我在 NHibernate 中通过为每个数据库创建一个 SessionFactory 来处理这个问题(我认为这是正确的做法)。所以我有两组模型(每个数据库一个)和两组 Fluent NHibernateClassMap<>映射。两者都在同一个项目中(由命名空间分隔),我想保持这种方式。

创建 SessionFactory 时出现问题。据我所知,Fluent NHibernate 基本上有两种添加映射的方法:

如果我使用第一个重载,那么我的会话工厂将获得两个数据库的所有映射。如果我使用第二个,我必须指定每个单独的 ClassMap。我想要类似的东西FluentMappings.AddFromNamespace()。有没有办法做到这一点?

0 投票
1 回答
2407 浏览

nhibernate - 错误:流畅的 NHibernate 映射引用了不同程序集中的映射

我的公司有多个站点,它们引用了相同的数据库和核心代码库。然后我们有一个管理数据的CMS。

在核心库中,我有一个 Site 类,其中包含有关每个站点的大量基本信息。这是我拥有的流畅映射。

作为 CMS 的一部分,我们会记录谁在何时编辑了什么内容。但我只想在 CMS 中引用 Log 类和映射,而不是在我的核心代码中,因为人们只能通过 CMS 编辑信息。

这是我当前到 Log 类的流畅映射,它引用了 Site 类。

理论上这很好用,但是日志映射错误如下

有谁知道如何让我的 CMS 映射来引用核心站点映射?这是获取跨两个项目的映射的第一段代码,但我们将做相当多的事情,因为很多东西你只能在 CMS 中查看和执行。如果可以避免的话,我真的不想将仅 CMS 的代码放入核心库中。

谢谢您的帮助

桑德拉

0 投票
1 回答
4902 浏览

c# - 流畅的 nHibernate 加入

我有一个映射到名为 Rule 的表的实体。此实体的表具有另一个名为 Category 的表的 FK。我试图弄清楚如何从我的 Rule 实体中的 Category 中提取属性。我很确定我想在我的实体映射中使用连接,但我不知道如何配置它以使其工作。这是我的映射:

这是它正在生成的 SQL...

这是我想要的 SQL。

我似乎在 JoinPart 上找不到任何可以让我这样做的东西。从我找到的少量文档来看,Subselect 看起来很有希望,但我找不到任何如何使用它的示例。对此问题的任何建议将不胜感激。谢谢!

0 投票
1 回答
421 浏览

fluent-nhibernate - Fluent NHibernate - 如何映射列表到多种类型?

我正在尝试映射一个包含不同类型实例的列表,这些实例都实现了与 Fluent NHibernate 的通用接口。下面是我希望我的模型看起来如何的简化示例。我希望将所有类型的问题存储在同一个表中,并将所有类型的答案存储在每种类型的一个表中。在调查示例中使用映射时,Nhibernate 将所有问题视为 IQuestion,并将所有答案视为 IAnswer 我做错了什么?

0 投票
1 回答
267 浏览

sql-server-2005 - 工作流畅的 NHibernate 映射呈现无效的 CreateSchema SQL

我继承了一堆 Fluent NHibernate 映射,它们目前都在它们所在的项目中工作(即应用程序使用它们并且工作)。现在我正在尝试为一些新映射构建集成测试,因此使用所有这些 - 旧的和新的 - 来生成模式,使用

但是,执行的 SQL 生成脚本有一些无效代码。大多数问题似乎源于以下两种情况之一:

发生的情况是,在创建此表的语句中,对应于上述映射的行如下所示(它们实际上位于不同的类型和不同的表中):

where (显然)False不起作用,因为没有具有该名称的变量,并且 SQL Server 中不存在布尔值。

我该如何解决这个问题?

我不想更改映射,因为有一个使用并依赖于它们的大型应用程序 - 我不知道(我现在不想知道)如果引入了哪些细微的错误比如说,我删除了默认规范。但是,如果我可以更改"False"并更改"True"为可行的东西,那是完全可以的-只要很明显它不会改变其他地方的任何行为即可。

0 投票
1 回答
914 浏览

fluent-nhibernate-mapping - Fluent NHibernate 映射继承

即使我的数据库中不存在该对象,我也可以映射一个抽象类吗?

例子:

和潜艇:

需要引用基类的类:

我的数据库中不存在该类型,但我需要此映射到其他类中的引用,我如何映射它?

谢谢。

0 投票
1 回答
382 浏览

integration-testing - 这个 Fluent NHibernate 映射测试是误报吗?

我将映射测试更改为使用重载.VerifyTheMappings(TEntity first),突然我的测试就通过了。我以前没有使用过这种过载,而且由于我不确定它是如何工作的,所以我担心我会误报。

我很惊讶主要是因为我认为我没有使用自动映射,而且我什至还没有映射整个实体。所以现在我想知道:

这个测试通过是因为它应该通过,还是因为它没有真正测试任何东西?

更新:经过进一步调查,我发现只要映射 ID,一切正常。这是应该的吗?.VerifyTheMappings(TEntity first) 真正测试什么?

我的代码:

配置

实体:

地图:

考试:

(是的,我的SetUpTearDown例程中也有一些导出/删除模式,但这都是标准的。它只是有点太深地嵌套在围绕这个应用程序构建的测试框架中,我不想挖掘相关的部分,因为它是不做任何花哨的事情,只是在花哨的地方......)

0 投票
2 回答
327 浏览

postgresql - 如何将字符串属性映射到数据库中的二进制列?

我有一个用户实体类。其中一个属性是用户的密码(实际上是哈希)。我把它变成了一个字符串(简化的代码):

还有一个 Fluent NHibernate 映射(精简代码):

数据库列是 PostgreSQL 上的bytea数据类型。上面的映射不起作用,因为属性是字符串(文本)。我该怎么办?

0 投票
1 回答
407 浏览

nhibernate - 遗留映射中的 NHibernate 映射错误

我继承了存在于现有功能应用程序中的大量 NHibernate 映射。我已经对这个应用程序进行了分支以开发一些新功能,同时我也在扩展测试基础架构以允许更类似于 TDD 的方法。但现在我在我的一个集成测试中碰壁了......

我有一个带有测试数据的类,我在集成测试之前插入了它。在插入这些的方法中,我得到以下异常:

NHibernate.PropertyAccessException: Invalid Cast (检查你的映射是否有属性类型不匹配); Domain.Entities.Project 的 setter ---> System.InvalidCastException:无法将“System.Object”类型的对象转换为“Domain.Entities.ProjectModules”类型。

我不知道为什么。我有两个Project实例,我尝试在设置时将其保留在数据库中,它们的定义如下:

Fluent NHibernate 映射的(相关部分)如下所示:

0 投票
3 回答
1364 浏览

c# - 在 Fluent Mappings 中排除一个类

这是我项目中流利映射的当前代码

这样做是将当前程序集/项目中的所有类包含到映射程序集中。我一直试图从映射程序集中排除一个特定的文件/类,但没有任何运气。

我怎样才能做到这一点?

谢谢,桑迪普