问题标签 [automapping]

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 回答
665 浏览

fluent-nhibernate - 如何在 Automapping Fluent NHibernate 中使用 IUserType?

我有一个实现 IUserType 的自定义类型。我的一个域类具有这种自定义类型的属性。

现在我想让自动映射与这个域一起工作,它说“来自表 xyz 的关联引用了一个未映射的类:PersianDate”

PersianDate 是我的自定义类型。我应该如何告诉自动映射这不是参考,它是适合字符串列的自定义用户类型!

我搜索了互联网上的所有内容,我认为这里有问题

你能帮我修一下吗

0 投票
3 回答
894 浏览

.net - 有没有办法在 Fluent NHibernate 自动映射中按命名空间忽略基类型/类?

目前,我正在使用以下代码来忽略具有 Fluent NHibernate 自动映射的基本类型:

有没有办法通过命名空间(即MyCore.BaseTypes)忽略基本类型,而不必为IgnoreBase()我拥有的每个基本类型使用该方法?

我尝试使用-extended 类(即)中的重写ShouldMap(Type)方法来完成此操作,但它仍然尝试映射基本类型:DefaultAutomappingConfigurationMyDefaultAutomappingConfiguration

0 投票
1 回答
751 浏览

c# - 使用 Fluent NHibernate 自动映射创建多个双向一对多关联

我对 NHibernate 和 .NET 框架还很陌生。

我想映射我的 Project 类,它具有一对多的关系 Subproject 和 ProjectTask 类。

我的实体从抽象基类继承 Id 属性。

我使用自动映射来覆盖以重新定义我的映射:

当我只映射与 Subproject 类的关联时,一切正常,并且 Project.Subprojects 中 Subproject 类的所有实例都将正确存储到数据库中。当我对 ProjectTask 类使用第二个覆盖时,我得到以下异常:

---> NHibernate.HibernateException:数据库中已经有一个名为“ProjectId”的对象。无法创建约束。请参阅以前的错误。

---> System.Data.SqlClient.SqlException:数据库中已经有一个名为“ProjectId”的对象。

有谁知道,为什么会这样?

0 投票
1 回答
382 浏览

nhibernate - autopmapping with UseOverridesFromAssemblyOf doesn't call overriding classes of base class

i'm using automapping with fluent nHibernate, very simply, like so:

my overriding classes are something like that:

where Reader is an abstract base-class. if I use a seperate overriding classes for each sub-class it works OK. Is there any way to define the overriding for all subclasses of the abstract class?

thanks,
Jhonny

0 投票
1 回答
423 浏览

nhibernate - NHibernate 与包含多个多对一引用的孙表有很多关系

现有三个表定义如下:

实体的定义如下:

我尝试了以下覆盖:

BusinessUnit自动映射覆盖:

Category自动映射覆盖:

我有很多和多对一的约定来处理列名,所以我认为我不需要在这里指定(或者至少我不这么认为)。自动映射器负责处理Paragraph.

has-many 映射BusinessUnit不起作用。我怎样才能做到这一点?

0 投票
1 回答
451 浏览

nhibernate - S#arp 架构中的一对一映射

有一种明显的烧坏电路的气味从我的头上冒出来,所以请原谅我的无知。

我正在尝试在 S#arp Architecture 中建立一对一的关系(好吧,让 Automapper 来做)。

我有

我的数据库架构是

当我在 MappingIntegrationTests 中运行单元测试 CanConfirmDatabaseMatchesMappings 时,出现以下错误

NHibernate.ADOException:无法执行查询... System.Data.SqlClient.SqlException:列名“ProfileFk”无效。列名“BasketFk”无效。

它试图执行的 sql 是

所以它在 Users 表中寻找 ProfileFk 和 BasketFk 字段。我没有设置任何客户覆盖映射,据我所知,我遵循了 S# 中的默认约定设置。

IList Orders 和 Roles 的另外两个映射似乎映射得很好。所以我猜它错过了建立一对一关系的一些东西。

我错过了什么?

0 投票
1 回答
447 浏览

nhibernate - 自动映射父级上的 SaveOrUpdate() 将所有子外键设置为 NULL

我正在使用 Fluent NHibernate 和 NHibernate.Core 3 beta 1。我有两个类:

我正在使用自动映射,它会生成我期望的模式,并且大部分情况下事情似乎都按预期工作。

我有以下操作(ASP.NET MVC 3 RC)来保存/创建促销:

这将执行预期的“update Promotion ...”查询,但它也执行以下操作:

我该如何防止这种情况发生?

我唯一的猜测是它看到了 Promotion 对象上的空列表(由 ASP.NET MVC 构造,因此未附加到 NH 会话),这意味着不应该有子 PromotionEntrants。为了尝试防止这种情况,我创建了以下自动映射覆盖,但它没有任何区别。

任何帮助将非常感激。

0 投票
0 回答
355 浏览

fluent-nhibernate - 带有联合子类选项的休眠自动映射

我想(自动)将基类及其派生类映射到两个不同的表,如ayende(联合子类)在此处所述。
但是,根据 fluent nHibernate 的文档,我看不到这样做的方法。
他们引用的 IAutoMappingOverride 中的属性是“IsDiscriminated”,但这仅在每个层次结构的表和每个子类的表之间存在差异。

自动映射是否可能不支持联合子类?如果是这样 - 任何人都可以提出解决方法吗?

谢谢,
强尼

0 投票
1 回答
282 浏览

c# - C# - 休眠问题

我对以下测试用例特别困惑:


如您所见,我正在尝试自动映射,但不幸的是,以下测试用例引发了以下 SQLite 异常(第一个包含已完成的实际查询):


而且我不明白为什么会这样——SQL命令似乎工作正常,相应的表应该由create table查询创建。

我认为我的代码有问题(我可能错过了一些东西)。你可以帮帮我吗?

0 投票
1 回答
1958 浏览

asp.net-mvc - Castle Windsor、Fluent Nhibernate 和 Automapping Isession 关闭问题

我对整个温莎城堡、Nhibernate、Fluent 和 Automapping 堆栈都是新手,所以请原谅我的无知。我不想就此发布另一个问题,因为似乎已经有大量问题试图解决 Windsor nhib Isession 管理问题,但到目前为止,他们都没有解决我的问题。当我尝试从我的存储库调用 Db 时,我仍然收到 ISession is closed 异常,这是我的容器设置代码。

在我的存储库中,我private readonly ISession session;按如下方式注入和使用它

在我的 web.config 里面<httpModules>。我也添加了这一行

我在这里仍然遗漏了部分谜题,我无法相信这是一个如此复杂的配置,以满足使用 nHibernate 和城堡 Windsor 进行任何 Web 应用程序开发的基本需求。

我一直在尝试遵循这里的代码windsor-nhibernate-isession-mvc并且我在那里发布了我的问题,因为他们似乎有完全相同的问题,但我的问题没有解决。

更新 MooKid8000 我现在已将我的城堡注册码更新为此

但是我仍然遇到 ISession 已关闭的问题,我的服务是否也需要注册为 Transient,您能否更详细地解释一下为什么它们应该是瞬态的而不是单例的

更新 MooKid8000 的建议是 100% 正确的,我只需要确保我的服务和存储库的范围都为 LifestyleType.Transient,这样 ISession 就不会被清除。很棒的地方 Mookid8000 最初甚至没有看到我的城堡注册码。

对于任何有兴趣的人,请与我联系,我可以将我的容器设置发送给您。