问题标签 [icriteria]

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 投票
1 回答
1714 浏览

nhibernate - 您如何比较在 ICompositeUserType 的 NHibernate ICriteria 查询中使用 .NET 类型?

我有一个已回答的 StackOverflow 问题,关于如何在我的 POCO 中将遗留数据库CHAR日期和时间字段合并到一个 .NETDateTime属性中 (非常感谢Berryl!)。现在我试图让一个自定义的 ICritera 查询来对抗那个属性,但无济于事。这是我的查询:DateTime

这是它生成的查询:

实际上,该查询正是我所期望的,除了它实际上并没有给我想要的东西(过去 2 周内的所有行),因为在 DB 中,它使用CHARs 而不是DATEs 进行大于比较。我不知道如何在不执行 CreateSQLQuery() 的情况下让查询将CHAR值转换为查询中的 a,我想避免这样做。有人知道怎么做吗?DATE

更新:我一直在考虑尝试使用Projections.SqlFunction()或公式来实现这一点,但到目前为止无济于事。这是我使用的代码SqlFunction(),但出现NHibernate.QueryException : property does not map to a single column: FileCreationDateTime错误:

我确定我在这里做错了,它仍然不喜欢它,因为它FileCreationDateTime使用了ICompositeUserType将 .NETDateTime属性拆分为两个 Oracle SQLCHAR列的自定义(有关详细信息,请参阅此 StackOverflow问题)。

0 投票
2 回答
5929 浏览

sql - 跨多个表的 NHibernate 查询

我正在使用 NHibernate,并试图弄清楚如何编写一个查询,搜索我的实体的所有名称,并列出结果。作为一个简单的例子,我有以下对象;

Eventaully 我想创建一个查询,例如,它返回名称包含“ted”的所有宠物主人,或名称包含“ted”的宠物。

这是我要执行的 SQL 示例:

当我使用这样的标准进行操作时:

生成以下查询:

如何调整我的查询,以便 .CreateCriteria("Dog") 和 .CreateCriteria("Cat") 生成 OR 而不是 AND?

谢谢你的帮助。

0 投票
3 回答
1175 浏览

linq - 是否可以从 LINQ 或 HQL 创建 ICriteria/ICriterion?

我正在创建一个方法,该方法可以从我的抽象过滤器对象创建 NHibernate 理解的过滤器(过滤器我的意思是一组 ICriteria 对象)。

然后我想做类似的事情

过滤实体。问题在于使用表达式。方法(Expression.Or 等)非常繁琐(该方法已生成,并且我有多个 or 语句必须以某种方式连接到一个表达式中)。有没有办法避免使用 Expression.Or() 并使用 LINQ 或 HQL 创建 ICrietrion / ICriteria?

0 投票
1 回答
477 浏览

.net - 使用 ICriteria 从 Min/Max 聚合函数中排除特定值

我有一个这样的时间表(航行)表:

按照设计'01/01/1753',如果用户没有填写捕获屏幕上的字段以及从未提供的第一次到达和最后一次离开,我将保存为默认值。我使用 Nhibernate 和 Criteria,我想知道如果我想知道表中每个航次的第一次出发和最后一次到达,查询这些数据的最佳方法是什么。

我的第一个想法是 groupby (ID),然后在到达和离开时做一些 Min 和 Max,但 ''01/01/1753' VALUE 很混乱。

那么有没有办法在 Min 函数比较中跳过这个值(不会丢失整行数据),或者有更好的方法来做到这一点,也许利用总是指示元素正确顺序的 OrderIndex,也许是排序ASC 获得第一个然后 Order DESC 并再次获得第一个,但我不太确定如何使用标准语法来做到这一点。

0 投票
2 回答
264 浏览

c# - 哪一个性能更好?

我使用 NHibernate 用两种方法编写了相同的查询:

1-通过使用HQL如下

2-通过使用ICriteriaSetProjections如下

现在我的问题是哪个性能更好?为什么?

0 投票
3 回答
240 浏览

nhibernate - NHibernate 标准问题

我有一个人对象,它可以有无限数量的名字。所以名字是另一个对象。

IE

人---姓名
            ---姓名
            ---姓名

我想做的是编写一个 nhiberate 查询,使用它可以让我得到一个有特定名字的人。

因此,一个查询可能是查找姓名为 alison 和 jane 和 philippa 的人,然后下一个查询可能是查找姓名为 alison 和 jane 的人。

我只想返回具有我正在搜索的所有名称的人。到目前为止我有

但这会返回每个人,其中包含我正在搜索的任何名称,而不是所有名称。

谁能帮我解决这个问题?谢谢!

0 投票
1 回答
785 浏览

nhibernate - 反向表达式.Like 标准

我应该如何使用 NHibernate 标准编写一个向后的语句?

子问题:

您可以访问 SQLCriterion 表达式中的抽象根别名吗?


这在某种程度上可以使用 SQLCriterion 表达式来实现

但是,在类继承的情况下,{alias}被替换为不正确的列别名。

示例(这些类存储在单独的表中):

上面Child以根类型执行的查询将替换{alias}为表的别名,Child而不是Parent表的别名。这会导致无效的列异常。

我需要执行上面的类似语句,其中属性存在于父表上而不是根类型表上。

0 投票
2 回答
8341 浏览

nhibernate - NHibernate Criteria - 如何过滤属性组合

我需要使用两个属性的组合来过滤结果列表。一个普通的 SQL 语句如下所示:

我最终使用的 NHibernate 中的 ICriteria 是:

它运行良好,但我不确定它是否是理想的解决方案,因为我仍在学习 NHibernate 的 Criteria API。有哪些推荐的替代方案?

  • 除此之外还有什么Expression.Sql可以执行相同的操作吗?我试过Expression.Like但不知道如何组合名字和姓氏。
  • 我应该将 FullName 属性映射到映射类中的公式“FirstName + ' ' + LastName”吗?
  • 我应该在域对象上创建一个只读 FullName 属性,然后将其映射到列吗?
0 投票
1 回答
3670 浏览

nhibernate - 如何在将子集合实体加入关联时急切获取子集合

假设以下虚构布局

我想写一个查询,告诉我给我一个名称为 X 的经销权,并获得 Cars 集合,但是当你这样做时使用对制造商的连接。我认为这需要使用 ICriteria。我在想这样的事情。。

但结果查询看起来不像我预期的那样。我开始认为某处可能需要 DetachedCriteria,但我不确定。

想法?

0 投票
2 回答
2220 浏览

c# - NHibernate SQLquery 用于分页到 HQL / ICriteria

我正在做一个查询,该查询基于 row_number() 对 X 行进行排序和返回我正在使用 NHibernate 和 MSSQL,我正在尝试使用 CreateSQLQuery 进行分页,我有这个查询:

有谁知道如何使用 HQL 或 ICriteria(甚至更好)而不是普通的 SQL 来完成这项工作?这样做的原因是我想要一个与 SQLite 和 MS SQL Server 2005 兼容的查询,以便我可以使用 .SetMaxResult() og .SetFirstResult()

提前致谢!