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

linq - Linq to NHibernate 多个 OrderBy 调用

我在我的 Linq to NHibernate 查询中按多个字段排序时遇到问题。有谁知道可能出了什么问题或者是否有解决方法?

代码:

我尝试用多个 OrderBy 调用替换 ThenBy。结果相同。如果我注释掉两个 ThenBy 调用,该方法效果很好。

我收到的错误:

0 投票
1 回答
474 浏览

c# - Bidi 关联和 NHibernate 映射

我有 BidiParent 和 BidiChildList 类,它们以双向父子关系链接父母和孩子。如果一个孩子的父母被例如服务层更新,旧的和新的父母的孩子列表会自动更新以反映变化。同样,如果通过例如添加新孩子来更新父母的孩子列表,则孩子的父母会自动改变,就像旧父母的孩子列表一样。我想尝试建立一个“智能”域模型。

显然,第一个问题是:这甚至是个好主意吗?

第二个问题是:是否可以告诉 NHibernate 访问和修改字段_Children 或 _Parent,但考虑属性Children 或 Parent 与该字段完全同义?NHibernate 应该加载和保存内部字段,但 HQL 或 LINQ 查询应该使用公共属性?

0 投票
3 回答
20677 浏览

nhibernate - 使用 NHibernate 删除表中所有行的最佳方法?

为了让我的集成测试保持独立,我删除了所有旧数据并在每次测试之前插入新的测试数据。有没有比简单地查询所有实体并一个一个删除它们更好的方法呢?

我考虑过编写一个运行“从表名中删除 ”的存储过程 对于要清除的每个表。这应该会快一些,但最好不要执行 SQL 查询或通过 NH 调用 SP。

我正在使用香草 NHibernate 和 Linq to NHibernate。我相信 Castle Active Record 有类似 Foo.DeleteAll() 的东西,但我不想在这个项目中使用 Active Record。

有任何想法吗?

谢谢/埃里克

更新:

自从提出并回答了这个问题以来,NHibernate 团队已经取得了进展。正如 Ayende 在这篇博文中解释的那样,您现在可以直接执行 DML 查询,而 NHibernate 不必获取任何实体。

要删除所有 Foo 对象,您可以这样做:

此查询将生成以下 SQL:

这比先获取实体然后删除它们要快得多。不过要小心,因为这样的查询不会影响 1 级缓存。

0 投票
3 回答
335 浏览

c# - 如何从父级返回集合的第一个对象

如果可能,我希望使用单个数据库查询来执行以下操作。

我的目标是基于当前位置 url,从其 pages 集合中返回第一个 Page 对象。

我现在尝试了许多不同的方法,它们似乎都执行了许多查询来获取所需的 Page 对象。

任何帮助表示赞赏!

忍者戴夫

0 投票
4 回答
1928 浏览

nhibernate - 奇怪的 linq 到休眠问题,来自“System.Int32”的无效转换

在以下代码中调用 Get 可以正常工作:

但是当我这样做时:

get 方法中的“实体”在您迭代它时会引发异常:

有人知道为什么吗?

编辑:这是不同的表达方式:

在泛型版本(顶部)中,它似乎出于某种原因试图转换 x,这一定是因为泛型:s

(为清楚起见省略了命名空间)

第二次编辑:似乎是当它尝试在 IEntity 和实例类型(TEntity)之间进行转换时

这是 IEntity:

第三次编辑:似乎是导致 AssociationVisitor 无法正确访问表达式树并转换“Convert(x).Id”的 Convert(x)

第四次编辑:我们走了,有人已经发现了这个错误https://nhibernate.jira.com/browse/NHLQ-11

谢谢

安德鲁

0 投票
3 回答
213 浏览

c# - 使用 Linq2Nibernate 和 IQueryable 进行界面设计

使用 Linq2Nibernate 时最好让你的 Repository 返回一个 IQueryable?

我的理解是,如果您使用 Linq 来 Nibernate,则查询不会“触发”,直到您调用 .First() 或 Single() 等。那么从所有接口中返回 IQueryable 不是最好的,这样您就可以在表达式树触发之前构建\操作表达式树吗?

我的存储库由服务调用并从 IServicie 继承。

编辑:

首先,我真的很感谢所有的答案。但我想对这个问题补充一点。我赞成这个设计。我不完全理解围绕测试的保留意见。只要在每个过滤点(即每个过滤点)都测试该过程,那么我真的看不出有太大的区别。

添加:

如果您的存储库不返回 IQuerrable,那么使用 Linq2Nibernate 有什么意义吗?

0 投票
4 回答
498 浏览

linq - Linq to Nibernate 设计

我认为使用 Linq2Nibernate 的目的是返回 IQueryable 并建立一个表达式树。我不确定这是否正确。

如果他们不打算返回 IQueryable,为什么有人会使用 Linq2Nibernate?

它还能用来做什么?

我希望对此主题有更多的投入

用于休眠的 Linq

0 投票
1 回答
1249 浏览

linq - Linq to NHibernate 在 2.1 Alpha 版本中吗?

所以 nHibernate 2.1 Alpha 几天前就出来了,但是 sourceforge 上的公告没有提到附加功能。特别是,它没有提到是否包含 LINQ。我知道我已经读过 LINQ 将成为 2.1 的一部分,但那是 6 个月前的事了。有人知道 LINQ 是否在 2.1 中或有哪些新功能?官方网站上没有关于 2.1 alpha 功能的文档。

0 投票
3 回答
6067 浏览

linq - NHibernate.Linq 和 MultiCriteria

任何人都知道使用 NHibernate.Linq 批处理 NHibernate 查询的方法,就像您可以使用 MultiCriteria 和 ICriteria 对象一样?

使用 MultiCriteria 我可以创建如下内容:

如果我用 Linq 调用替换 CreateCriteria 调用并得到如下内容会很好:

我们对大多数其他查询使用 Linq API,当我们还需要运行 MultiCriteria 查询时,使用相同的 Linq 语法会很好。

谢谢。

0 投票
2 回答
2694 浏览

c# - NHibernate Linq 和 DistinctRootEntity

当我执行以下查询时,我收到一个异常,告诉我“feedItemQuery”包含多个项目(因此 SingleOrDefault 不起作用)。

这是使用没有 DistinctRootEntity 转换器的 Criteria api 时的预期行为,但是在使用 linq 时,我希望获得一个根实体(FeedItem,其属性 Ads(ICollection 的)包含所有广告)。

有没有办法告诉 NHibernate.Linq 使用 DistinctRootEntity 转换器?

我的查询:

映射:

提前致谢