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

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

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

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

0 投票
5 回答
10509 浏览

fluent-nhibernate - 使用 Fluent NHibernate AutoMapping 进行级联保存

如何使用带有 Fluent NHibernate 的 AutoMap 持久性模型“打开”级联保存?

如:

我救了人,胳膊也应该救了。目前我得到

“对象引用了一个未保存的瞬态实例 - 在刷新之前保存瞬态实例”

我找到了一篇关于这个主题的文章,但它似乎已经过时了。

0 投票
3 回答
6634 浏览

c# - Fluent NHibernate 自动映射:将 DateTime 更改为时间戳

我正在(有点)深入使用 NHibernate 的流畅界面进行自动映射。非常好的事情,但我在使用 DateTimes 时遇到了一个小问题。我需要将数据格式更改为时间戳,否则 NHibernate 会截断毫秒。

我找到了几个信息来源,最好的一个是: AutoMapping Info 1,他正在更改属性的列名和类型。问题是,根据本文档,流畅的自动映射发生了变化。

现在我不知道如何让自动映射“更改类型”。我尝试了以下代码,但我被卡住了。同样,我想做的只是告诉自动映射器:

使用 DateTime 的时间戳可防止在使用自动映射时截断毫秒。

有人有想法吗?到目前为止的代码:

好的,非常感谢您的回答...那样对我来说已经足够舒适了。如果我真的有 3 个类需要这种精度,我可以写三遍。特别是因为所有其他属性的映射仍然完美,并且以下代码仅替换我想要的一个属性......非常好!

如果有人知道更通用的方法,请随时添加,但现在,我很高兴!

我的案例代码是:

0 投票
1 回答
1938 浏览

c# - Fluent NHibernate 自动映射错误

这让我摸不着头脑,所以我希望第二双眼睛能帮助我。

设置:

我有一个名为 DomainEntity 的基类,我的所有数据传输对象都使用它。它基本上只定义了一个名为 Id 的属性(它是一个整数)。

我有数据传输对象:博客、帖子、用户 DomainEntity 在命名空间 Core.Domain 中,数据传输对象在 Core.Domain.Model 下

我有以下会话生成器代码:

当我尝试测试一个简单的查询时,我在上面的代码(某处)上得到一个应用程序异常,错误消息是:

System.ApplicationException:尝试为'Core.Domain.DomainEntity'构建映射文档时出错---> NHibernate.MappingException:无法编译映射文档:(XmlDocument)---> System.IndexOutOfRangeException:索引超出了数组的边界。

似乎我的代码/NHibernate 正在尝试映射 DomainEntity,但失败了。我认为我上面的代码明确声明不要使用 type.Namespace.EndsWith("Domain.Model") 映射该对象。那是对的吗?我在哪里会误入歧途?

感谢您的任何帮助。

0 投票
1 回答
845 浏览

nhibernate - Fluent NHibernate Automap 加入子类设置键

在流利的 nhibernate 中自动映射连接的子类时,我不知道如何为连接的子类提供主键。

我希望 Location 有它自己的 id “location_id”和它自己的序列。然后我希望通过 address_id 列映射到地址。

现在它正在生成以“addressid”为主键的位置,这不是我想要的。如何通过自动映射更改此设置?

0 投票
10 回答
9955 浏览

c# - C# - IDataReader 到使用泛型的对象映射

如何使用泛型将 DataReader 对象映射到类对象?

例如,我需要执行以下操作:

后来我需要调用这个类方法,如下所示:

请注意,Mapper - 类应该能够映射由 T 表示的任何类型的对象。

0 投票
1 回答
256 浏览

fluent-nhibernate - 自动映射:组件上的 IgnoreProperty?

我正在将测量类(实现接口 IMeasurement)自动映射为组件。

这很好用,但是我想忽略的组件中有一些属性。

显然我不能在测量类本身上使用 IgnoreProperty,即:

[ .ForTypesThatDeriveFrom(p => p.IgnoreProperty(x => x._uomSpecified)) ] 其中 MeasuredDepthCoord 是 Wellbore 的一个组件(实际上多次使用不同的属性名称,MdCurrent、TvdCurrent、MdKickoff、MdPlanned 等。

任何人都知道如何忽略组件上的属性,所以我没有得到(例如)为不需要的组件属性生成的表列?(在 SchemaExport 中)

问候,查尔斯

0 投票
3 回答
2357 浏览

fluent-nhibernate - 流畅的 NHibernate。自动映射和约定

我是 NHibernate 的新手,它的配置方面对我来说似乎总是过于繁重。昨天,我遇到了 Fluent NHibernate 的 Auto Mapping 功能,给我留下了深刻的印象。

为了教育自己,我为自己设定了使用 AutoMappings 和约定尝试“入门第一个项目”(http://wiki.fluentnhibernate.org/show/GettingStartedFirstProject )的挑战。我不得不承认运气不太好。

总结我的步骤:

我在示例中对数据库模式进行了一些小的更改,主要是为了从外键中删除下划线(即 Product_id 到 ProductId),因为这会使它更符合我们的数据库命名标准。

Q1)我尝试使用 ForeignKeyConvention 作为示例编写 IHasManyConvention 实现,但 WithKeyColumn 方法似乎不存在(我认为这是因为我下载了昨天的构建,因此自撰写文章以来设计发生了变化)。我该如何纠正这个问题?

我还对示例中的实体层进行了一些小的更改,因为我认为这会更容易,他们将把 StoresStockedIn 重命名为 Stores (Product.cs) 并将员工重命名为Employees (Store.cs)。

我的代码如下所示:

然后,我尝试按照入门示例将商店、产品和员工添加到数据库中。我在 Commit 上遇到的异常是:

对象引用未保存的瞬态实例 - 在刷新之前保存瞬态实例。类型:FluentNHibernateTesting.Entities.Employee,实体:FluentNHibernateTesting.Entities.Employee

Q2) 我该如何解决这个问题?我理解(从我有限的阅读中)它与正确设置对象关系的级联元素有关,但我对如何使用自动映射有效地进行此操作有点困惑。

Q3) Fluent 项目是否有目标发布日期?我(就像我假设的许多其他人一样)觉得这是一个很好的举措,但我会注意使用它,除非它处于稳定状态。

Q4)在许多博客中提到,他们正在稳步努力实现 Fluent 与 hbn.xml 的功能相同。是否在某处列出了这些缺失的功能,以帮助评估和使用该工具?

提前感谢帮助。

0 投票
6 回答
4553 浏览

mysql - Fluent NHibernate DuplicateMappingException 与 AutoMapping

概括:

我想用 Fluent NHibernate Automapper 保存两个同名和不同命名空间的类

语境

我正在写必须将许多不同的对象导入数据库进行测试。我最终会将映射器写入适当的模型。

我一直在使用 code gen 和 Fluent NHibernate 来获取这些 DTO 并将它们直接转储到 db。

异常确实说(尝试使用 auto-import="false")

代码

这是实际的应用程序代码

谢谢我真的很感激任何帮助

使用 Fluent Nhibernate RC1 进行更新

0 投票
0 回答
397 浏览

fluent-nhibernate - 列属性自动映射

可以为列命名创建约定:

我有这段代码:

和一个实体类

最后我想有一个专栏,让我们说 TelNo 就像 tel_no。所以约定是如果 Property 在中间包含大写字母 ti 应该被强调。Inflector.Net.Inflector.Underscore 工作正常。但我不知道如何编写约定。

像这样的东西:

谢谢