问题标签 [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 - 为 NHibnernate 结合 Fluent 和 XML 映射
我刚刚爱上了 NHibernate 和流畅的界面。后者通过重构支持实现了非常好的映射(不再需要 xml 文件)。
但是没有人是完美的,所以我错过了流利的多对任意映射。有人知道它是否已经存在吗?如果是这样,一个简单的代码行会很好。
但要坚持问题的标题,有没有办法结合流畅和正常的 NHibernate 映射。
目前,我将以下几行用于我的测试设置 WITH fluent,以及我的测试的第二个代码块,而不使用 fluent(使用 XML 映射)。我怎么能告诉流利使用流利的 IF AVAILABLE 和 XML 否则......
没有流利...
就是这样……克里斯
PS:我真的很喜欢这个网站,界面非常完美,所有文章的质量都令人难以置信。我认为这将是巨大的:-) 必须注册...
nhibernate - Windows 服务应用程序中的 NHibernate 会话管理
我正在开发和作为 Windows 服务运行的应用程序。还有其他组件,包括一些 WCF 服务、客户端 GUI 等 - 但访问数据库的是 Windows 服务。
因此,该应用程序是一个长时间运行的服务器,我想提高它的性能和可扩展性,我希望改进数据访问等。我在另一个线程中发布了关于二级缓存的帖子。
这篇文章是关于访问数据库的长时间运行线程的会话管理。我应该使用线程静态上下文吗?如果是这样,是否有任何示例说明如何实施。
网络上所有使用 NHibernate 的人似乎都非常关注 Web 应用程序风格的架构。似乎非常缺乏非 Web 应用程序设计的文档/讨论。
目前,我长期运行的线程这样做:
- 调用 3 或 4 个 DAO 方法
- 验证返回的分离对象的状态。
- 如果需要,更新状态。
- 调用几个 DAO 方法来持久化更新的实例。(传入对象的 id 和实例本身 - DAO 将再次从数据库中检索对象,并在提交事务之前设置更新的值和 session.SaveOrUpdate()。
- 睡眠'n'秒
- 再重复一遍!
因此,以下是我们用于每个 DAO 方法的常见模式:
- 使用 sessionFactory.OpenSession() 打开会话
- 开始交易
- 做数据库工作。检索/更新等
- 提交反式
- (异常情况下回滚)
- 最后总是处理事务和 session.Close()
对 DAO 类的每个方法调用都会发生这种情况。我怀疑这是我们正在做的某种反模式。
但是,我无法在任何地方找到足够的方向来改进它。
请注意,当这个线程在后台运行时,做它的工作,有来自 WCF 客户端的请求,每个客户端都可以自己调用 2-3 个 DAO - 有时查询/更新长时间运行的线程处理的相同对象.
任何改进我们设计的想法/建议/指针将不胜感激。如果我们能进行一些很好的讨论,我们可以把它变成一个社区维基,并可能从http://nhibernate.info链接到这里
克里希纳
nhibernate - nhibernate - 最后排序为空
以与 MS SQL Server 2005/2008(最好是 Oracle)兼容的方式使用 C# 中的 NHibernate 和仅 HQL(不是 SQL)。
有没有办法编写 order by 子句,以便空值将在查询结果的末尾排序,而非空结果将按升序排序?
根据 nickf 引用的问题的答案,答案是:
nhibernate - 单声道休眠 2.0.1
我已经在 Windows 机器上构建了我的 WinForm 应用程序,并且该应用程序运行正常。当我使用 nhibernate 1.2.1 时,该应用程序也可以在使用单声道的 linux 机器上运行,但是现在当我将应用程序升级到 nhibernate 2.0.1 时,它只能在 Windows 中运行。我收到错误:NHibernate.InvalidProxyTypeException:以下类型可能不能用作代理:xxxx.Data.Dao.Credit:方法 obj_address 应该是虚拟的......谁能帮我解决这个问题?
c# - NHibernate 映射到不在 ID 上的另一个对象
好的,NHibernate 问题在这里。我有两个要相互映射的对象。我有“供应商”和“乡镇”……现在这两者应该通过邮政编码链接,而不是 ID。我已经多次使用 id 对对象执行此操作,但从来没有这样的事情。
我遇到的问题是 ZipCodes 在存储为字符串时会以某种方式变成整数(前导零被丢弃)?或者它正在使用其中一个对象的 ID。
这是我的错误:
“/HQWebsite”应用程序中的服务器错误。不存在具有给定标识符的行[HQData.Objects.Township#7922]
我在那里查看的数据库中的数据也不是准确的。
这是我映射供应商 xml 文件的方式:
这是乡镇的财产:
有没有人熟悉 NHibernate 并且以前做过这个?谢谢!
c# - 领域驱动设计 - 逻辑删除
所以,我建立了一个很好的域模型。存储库处理数据访问等等。弹出了一个新要求,表明需要使用删除记录原因。到目前为止,删除都相当简单 => Entity.Children.Remove(child)。由于我的 ORM 工具正在处理状态管理,因此没有进行内部更改跟踪。但是,我不确定如何处理这个问题。
1)我可以在父实体中保留一个已删除的子集合,并将更改跟踪从 nHibernate 中拉出并自己处理。
2)??????
nhibernate - 从 NHibernate 映射文件生成 C# 类的工具?
有什么工具可以从 NHibernate 映射文件生成 C# 类?
nhibernate - NHibernate 双向多对多关联
我有一堂课,描述如下:
我想将 Contacts 属性映射到下表:
我希望它双向映射,即当 Customer1 添加到 Customer2 的联系人时,Customer1 的联系人集合应该包含 Customer2(可能仅在实体重新加载后)。我怎么能那样做?
更新当然我可以映射从左到右和从右到左的集合,然后在运行时组合,但它会......嗯......不好吃......还有其他解决方案吗?无论如何,非常感谢你,FryHard!
asp.net - NHibernate 数据库连接在负载下失败
我想知道这对于任何有经验的 NHibernate 开发人员来说是否熟悉,或者是否有人可以告诉我从哪里开始尝试解决这个问题:
我继承了一个用 ASP.NET 1.1 编写的 NHibernate 站点,使用 NHibernate 0.6 和 .NET 远程处理驻留在数据库服务器上的 DAL 层。我一直在尝试将其升级到 ASP.NET 3.5 和 NHibernate 1.2.1.4。
我用直接的数据库连接替换了 .NET 远程处理设置,一切正常,直到站点承受一定的负载,然后 NHibernate 调用开始间歇性地失败并抛出异常:ADOException 无法执行查询,然后是 NHibernate 生成的 SQL 语句。
给出错误的堆栈跟踪是:
c# - NHibernate DetachedCriteria.SetFirstResult?
我在网络上找到了一个在 NHibernate 中实现存储库模式的示例,其中一个方法使用此代码来获取查询的第一个结果:
但是 VS intellisense 并没有从 DetachedCriteria 中采用这种方法。有谁知道 DetachedCriteria 是否可行?我正在使用 NHibernate 1.2.1 版。