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

nhibernate - 防止 Fluent NHibernate 选择 n+1

我有一个相当深的对象图(5-6 个节点),当我遍历它的一部分时,NHProf 告诉我我遇到了“选择 N+1”问题(我确实这样做了)。

我知道的两个解决方案是

  1. 急切的负载孩子
  2. 分解我的对象图(和急切的负载)

我真的不想做这些(尽管我可能会在以后将图表分开,因为我预见到它会增长)

目前....

是否可以告诉 NHibernate(使用 FluentNHibernate)每当我尝试访问孩子时,一次性加载它们,而不是在我迭代它们时选择-n+1-ing?

我也得到了“无限的结果集”,这可能是同一个问题(或者更确切地说,如果可能的话,将通过上述解决方案来解决)。

每个子集合(在整个图表中)将只有大约 20 个成员,但是 20^5 很多,所以我不想在获得根时急切加载所有内容,而只是在我获得所有子集合时靠近它。

编辑:事后诸葛亮......如果我想在渲染孩子时引入分页怎么办?我必须在这里打破我的对象图,还是我可以利用一些鬼鬼祟祟的方法来解决所有这些问题?

0 投票
3 回答
1945 浏览

nhibernate - (Fluent) NHibernate : 一个由来自不同表的字段组成的实体

有没有办法编写 NHibernate 映射,以便您可以拥有一个由来自不同数据库表的字段组成的实体?

例如,我有一个人员和地址表,我希望地址字段出现在我的人员对象中。

我想要一个这样的实体:

0 投票
1 回答
344 浏览

c# - 在 nhibernate 中具有未知列的表上的 CRUD

例子:

这个类映射是限制性的,因为在我的其他一些项目中,表格看起来完全不同。

我倾向于做的是映射一个字典,其中字典中的每个元素都代表表中的一列,这样在数据库中添加列时它将是 100% 动态的,我只需要更新映射文件如果我正在集成与不同的系统,则使用哪个表。这还需要一个包含元数据的表来提供类型和验证信息以满足我的域的要求。

有没有办法在 fluent-nhibernate 中进行这种映射?某种形式的

我确实认为该解决方案闻起来有点难闻,因此,如果有人有更强类型的解决方案或指向某个 id 的链接,我很乐意听到它;)。

0 投票
5 回答
10509 浏览

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

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

如:

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

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

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

0 投票
3 回答
5231 浏览

.net - NHibernate:列不允许空值。插入失败

我有 2 个实体 Person 和 Address,Person 有一个地址。

编辑:地址已经存在,我只是想保存外键。

当我这样做时:

我得到这个例外:

无法将值 NULL 插入到列“键”、表“地址”中;列不允许空值。INSERT 失败。语句已终止。

从 Person 映射文件片段

我不明白为什么会发生这种情况,我给地址键一个值。我的方法有缺陷吗?

0 投票
6 回答
487 浏览

c# - 归一化后的 NHibernate 映射

请帮助我——我是 NHibernate 的新手,我似乎找不到我要找的东西。

我在数据库中有两个表:FundFundBalance. AFund可以有很多FundBalances,而 aFundBalance只有一个Fund

在 C# 中,只有FundBalance类。表中的列与Fund表中的列连接FundBalance需要映射到FundBalance类的属性上。

例如,Fund表包含FundName属性,FundBalance表包含AvailableBalance属性。这两个表是join的,join的结果需要映射到类的FundNameandAvailableBalance属性上FundBalance

问题:我如何用 NHibernate 做到这一点?奖励:如何使用 FluentNHibernate 指定映射?

我想到的一种解决方案是在数据库中创建一个视图,但如果映射可以完全使用 NHibernate 完成,我会更喜欢它。

0 投票
2 回答
1276 浏览

nhibernate - 是否可以使用 NHibernate 在属性上设置默认值

我使用 Fluent NHibernate 进行映射,并将 SchemaExport 类用于数据库模式。

NHibernate 是否可以在生成的数据库模式中为属性/列设置默认值?

0 投票
9 回答
20345 浏览

fluent-nhibernate - 我在哪里可以找到 Fluent NHibernate 教程?

我已经用谷歌搜索并环顾四周,有没有人知道任何隐藏的宝石,这些宝石不在谷歌搜索的前几页......

0 投票
7 回答
11690 浏览

nhibernate - ArgumentOutOfRangeException : 索引超出范围

每当我使用 PersitenceSpecification 类来验证具有对值对象的引用的实体时,我都会收到这个奇怪的 ArgumentOutOfRangeException。

这是我得到的错误:

未执行测试用例“Then_a_catalog_object_should_be_persistable”:System.ArgumentOutOfRangeException:索引超出范围。必须是非负数且小于集合的大小。参数名称:System.ThrowHelper.ThrowArgumentOutOfRangeException 处的索引(ExceptionArgument 参数,ExceptionResource 资源)处 System.ThrowHelper.ThrowArgumentOutOfRangeException() 处 System.Collections.Generic.List1.get_Item(Int32 index) at System.Data.SQLite.SQLiteParameterCollection.GetParameter(Int32 index) at System.Data.Common.DbParameterCollection.System.Collections.IList.get_Item (Int32 index) at NHibernate.Type.GuidType.Set(IDbCommand cmd, Object value, Int32 index) at NHibernate.Type.NullableType.NullSafeSet(IDbCommand cmd, Object value, Int32 index) at NHibernate.Type.NullableType.NullSafeSet(IDbCommand st, Object value, Int32 index, ISessionImplementor session) at NHibernate.Persister.Entity.AbstractEntityPersister.Dehydrate (Object id, Object[] fields, Object rowId, Boolean[] includeProperty, Boolean[][] includeColumns, Int32 table, IDbCommand statement, ISessionImplementor session, Int32 index) at NHibernate.Persister.Entity.AbstractEntityPersister.Insert(Object id, Object[] fields, Boolean[] notNull, Int32 j, SqlCommandInfo sql, Object obj, ISessionImplementor session) at NHibernate.Persister.Entity.AbstractEntityPersister.Insert(Object id, Object[] fields, Object obj, ISessionImplementor session) at NHibernate.Action.EntityInsertAction.Execute() at NHibernate.Engine.ActionQueue.Execute(IExecutable executable) at NHibernate.Engine.ActionQueue.ExecuteActions(IList list) at NHibernate.Engine.ActionQueue.ExecuteActions() at NHibernate.Event.Default.AbstractFlushingEventListener.PerformExecutions (IEventSource session) at NHibernate.Event.Default.DefaultFlushEventListener.OnFlush (FlushEvent event) at NHibernate.Impl.SessionImpl.Flush() at NHibernate.Transaction.AdoTransaction.Commit() d:\Builds\FluentNH\src\FluentNHibernate\Testing \PersistenceSpecification.cs(127,0): at FluentNHibernate.Testing.PersistenceSpecification1.TransactionalSave (Object propertyValue) d:\Builds\FluentNH\src\FluentNHibernate\Testing\PersistenceSpecification.cs(105,0): 在 FluentNHibernate.Testing.PersistenceSpecification`1.VerifyTheMappings() C:\Source\SupplyChain\Tests\ Retailer.IntegrationTests\Mappings\CatalogItemMappingSpecifications.cs(14,0):在 SupplyChain.Retailer.IntegrationTests.Mappings.When_verifying_the_class_mapping_of_a_catalog_item.Then_a_catalog_object_should_be_persistable ()

很抱歉这篇长文,但这一篇让我忙了几个小时。这可能不是由 FNH 引起的,因为我发现这张 NH 本身的 JIRA 票中提到了类似的内容:

http://forum.hibernate.org/viewtopic.php?p=2395409

我仍然希望我在我的代码中做错了什么:-)。任何想法?

提前致谢

0 投票
1 回答
333 浏览

fluent-nhibernate - NHibernate 中的条件关系

根据ObjectType列,我有一个表需要与 2 个表的关系。

例如,如果 ObjectType=1,则Object列应指向 TABLE1,如果 ObjectType=2,则指向 TABLE2。

我可以在 NHibernate 映射中或作为 Fluent NHibernate 完成此操作吗?

如果不是,你会建议我对两个表类使用相同的接口吗?(注意:表模式完全不同)