问题标签 [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.
nhibernate - Nhibernate:使与地图的多对多关系成为一对一
我有两个项目 A 和 B,它们具有单向的一对一关系。(A 有一个 B)
在数据库中,它们由 ATable 和 BTable 表示,它们由 ABTable 链接在一起。(从数据库设置来看,似乎存在多对多关系,但实际上并没有,这样做是出于规范化的原因)。
问题是由于这种设置,我只能让 NHibernate 将其映射为实体之间的多对多关系。无论如何使实体具有一对一的关系?
我能想到的最好的方法是让它具有多对多关系,然后在 A 实体上有两个属性,一个返回 B 的列表,这将满足映射和第二个非映射属性,它将获得列表中的第一个 B,以满足我的应用程序。- 但这似乎不优雅。
nhibernate - 使用 Fluent NHibernate 生成表索引
是否可以使用 Fluent NHibernate 与数据库模式的其余部分一起生成表索引?我希望能够通过自动构建过程生成完整的数据库 DDL。
fluent-nhibernate - 如何使用流利的 nhibernate 设置 generate_statistics = true
据我了解,我需要以这个结束
关于会话工厂配置,但我不知道如何使用流利的 nhibernate 来做到这一点。
c# - Fluent nHibernate Configuration
I am trying to configure fluent nHibernate and have this code
When I run I get this message though "FluentNHibernate.Cfg.FluentConfigurationException: An invalid or incomplete configuration was used while creating a SessionFactory".
If I use this code it works, but I don't want to reference the Model assembly directly from the Core assembly that has the nHibernate session manager.
Can someone help?
c# - 如何使用 MySQL 配置流畅的 nHibernate
我正在尝试将 nHibernate 配置为使用 MySql 数据库。我找到了 mssql 和 sqlite 的示例,但没有找到 mysql 的示例。那么,我该如何更改它以使其使用 mysql:
nhibernate - NHibernate 记录并连续执行两次查询
我在 SQL Server Express 2008 上使用:NHibernate、NHibernate.Linq 和 Fluent NHibernate。我正在使用引用属性上的谓词选择一个实体(多一个映射)。我有 fetch=join、unique=true、lazy-load=false。我启用了 log4net 日志,当执行任何此类查询时,它会记录两个相同的 SQL 查询。运行查询返回一行,当我尝试使用 IQueryable.Single 扩展方法时,它会抛出异常,指出返回的行不止一行。我还尝试使用具有相同结果的标准 IQuery.UniqueResult 方法运行查询,它最终记录并实际运行两次查询,然后抛出一个异常,指出有多行,但是在管理工作室中运行实际查询仅返回一个结果。当我禁用日志记录时,我收到同样的错误。
实体和映射声明如下(隐含适当的访问修饰符和成员类型变化)
然后我调用如下查询:
在所有情况下都执行两个相同的查询。当我启用延迟加载时,客户端再次使用两个查询加载,但是在访问成员(例如 Person)时,只执行一个附加查询。
这可能是 Fluent 生成不正确映射的结果吗?或者 NHibernate 没有正确使用 SQL Server Express 版本?
nhibernate - Fluent NHibernate 对象化关系映射
寻找有关如何配置 NHibernate 以支持我的场景的答案,即具有对象化关系的多对多映射。
我有一组 Person:s 与其他 Person:s 的关系。每个关系都有一个属性,指定它们具有什么类型的关系。在 RDB 中,这是通过使用具有在该表中指定的关系类型的多对多表来完成的,然后可以通过允许更多类型来扩展模型,例如“亲密朋友”和“主要敌人”。
我希望能够查询一个 Person 对象以按类型返回所有相关的 Person
或者
另一个(不太可扩展的)解决方案是在类中静态指定存在哪些其他关系:
现在我必须使用带有“Person”表和“PersonPerson”表的遗留数据库。“PersonPerson”表将关系类型保存为整数。
我试图使用如下语法来做到这一点,但到目前为止没有成功......
关于使用(流利的)NHibernate 映射这个的任何提示/解决方案?
BR
/詹斯
c# - 在 Fluent NHibernate 中回滚由 PersistenceSpecifications 创建的记录
我正在学习一些 Fluent NHibernate,并且遇到了半真棒 PersistenceSpecification 类。
我已经在单元测试中设置它来验证我的映射并且效果很好。但是,它在完成后将记录留在数据库中。我尝试将其放入事务中,以便回滚更改,但出现错误:
System.ObjectDisposedException:无法访问已处置的对象。对象名称:'AdoTransaction'..
如果没有事务,我必须找出记录的 ID,检索它们并删除它们,这似乎不太优雅。
有什么想法吗?
编辑:
这是代码片段:
fluent-nhibernate - 如何在 Fluent NHibernate ClassMap 类中指定表名?
我是 NHibernate 的新手并尝试使用 Fluent 进行映射。我的实体类名称与它必须映射到的数据库表名称不同。我正在使用从 派生的映射类ClassMap<>
,但我无法指定表名:属性TableName
fromClassMap
是只读的。
谢谢你的帮助。
nhibernate - Fluent NHibernate HasManyToMany 和 NotFound
我有以下 FNH 映射片段:
产生以下 HBM:
问题是我正在处理遗留数据,也就是说,让我们说“不太理想”,并且一些记录的 ID 无效,所以我需要将not-found="ignore"
属性放在包内的多对多标签上。我看不出有任何方法可以用 FNH 实现这一点。
有.NotFound.Ignore()
on the References()
call,但没有 on the HasManyToMany
Call。
有人能告诉我我错过了什么吗?即使在渲染后/在配置 NH 之前“注入”属性是一种技巧,我也只需要它工作即可。
提前致谢。
更新gcores 答案将不起作用,它会将其添加到错误的标签中,请参阅我对他的答案的评论以获取更多信息。