- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
如何编写与此 linq 匹配的 ICriteria?
ProgramItems.OrderBy(x => x.TimeBlocks.Min(y => y.StartTime))
ProgramItem - TimeBlock 具有多对多关系。
我可以使用这段代码按 TimeBlock id 进行过滤:
criteria.Add(Subqueries.Exists(DetachedCriteria.For<ProgramItem>("p")
.CreateAlias("p.TimeBlocks", "timeBlocks")
.Add(Restrictions.EqProperty("p.Id", "ProgramItem.Id"))
.Add(Restrictions.Eq("timeBlocks.Id", request.TimeBlockId))
.SetProjection(Projections.GroupProperty("p.Id"))
.Add(Restrictions.Eq(Projections.Count("p.Id"), 1))));
但我找不到使用别名/投影按 TimeBlock 中的属性排序的方法 - 有任何线索吗?
最佳答案
如何通过 many-to-many
结束 ORDER BY 的方式如下所示:
var subquery = DetachedCriteria.For<TimeBlock>("timeBlock")
.CreateAlias("timeBlock.ProgramItems", "programItems")
.SetProjection(Projections.Min("timeBlock.StartTime"))
.Add(Restrictions.EqProperty("programItems.Id", "root.Id"));
// ORDER BY built from Subquery
var orderByMin = new Order(Projections.SubQuery(subquery), true); // true is ASC
var list = session
.CreateCriteria<ProgramItem>("root")
.AddOrder(orderByMin)
.SetMaxResults(10) // paging... if needed
.List<ProgramItems>();
正如我们所见,多对多
的端都必须被映射。然后,我们在 TimeBlock
实体上构建 MIN 部分 - 连接到 ProgramItem
表。这在根查询中用作一种过滤方式。
我的建议是更改多对多
以具有配对表的显式实体。这将导致更加简化的查询......但在这种情况下,我们甚至可以用这个来做到这一点
关于c# - nHibernate ICriteria 按多对多属性最小值排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25711180/
我正在尝试返回给定属性不为空的所有实体。问题是 IsNotEmpty() 仅适用于集合。以下是我目前采用的一般方法,它显然行不通。 ICriteria lvCriteria = NHibernateH
是否有任何好的 ICriteria API 概述?来自官方 NHibernate 引用的第 12 章太短,我仍然没有清楚地了解 ICriteria 的用法。 最佳答案 NHibernate 中的 Cr
谁能告诉我SetTimeout(int) 的单位是什么? ICriteria 中的方法接口(interface)用途? 是毫秒、秒、分钟还是其他? 最佳答案 一点点四处寻找表明它可能是几秒钟: 假设
使用 NHibernate 我通常使用 Get() 或 Load() 方法查询单个记录(取决于我是否需要代理): SomeEntity obj = session.Get(new PrimaryKey
我正在使用 NHibernate 并创建如下查询:- ICriteria criteria = session.CreateCriteria(); ProjectionList projList =
如何编写与此 linq 匹配的 ICriteria? ProgramItems.OrderBy(x => x.TimeBlocks.Min(y => y.StartTime)) ProgramItem
我正在尝试使用 ICriteria 创建具有连接的查询健康)状况。我尝试生成的 SQL 应该如下所示 SELECT c.ClientID FROM Client c LEFT OUTER JOIN C
使用 NHibernate ICriteria 并添加 .AddOrder ... 我想按有时为 null 的属性排序,所有填充的属性都位于顶部。 .AddOrder 允许我这样做吗?如果没有,还有其
我通常经常使用 LINQ,尤其是 LINQ-to-Objects,因此我对 LINQ 相当流利。 我正在考虑使用 LINQ-to-NHibernate 作为我的 NHibernate 项目的查询语言。
[旗帜] public enum ShowProductOn : short { HomePage = 1, SalesPage = 2, NewsLetter = 4 };
我一直在为即将到来的项目评估 NHibernate,并通过一些用例来了解它的性能。我尚未找到使用 Criteri API 表达以下查询的方法。 两个相当基本的表格(为了本示例的目的而进行了删减) CR
有没有办法使用 ICriteria 结果作为后续条件查询的“基础”? 例如,如果我想创建一个查询 SELECT department_id, sum(cost) AS total FROM payme
您好,我想编写一个 FindByExample(object o) 方法。所以我尝试了这个: public IList FindByExample(T o) { return Session.
是否可以在 Visual Studio 的输出中添加注释以由 queryover 查询生成?以前当我们使用 ICriteria 时,有一个简单的 SetComment 方法,我们可以设置查询名称,这样
任何人都知道如何将 ICriteria 转换为 DetachedCriteria。我需要使用现有的 ICriteria 作为子查询的一部分: .Add(Subqueries.PropertyIn("N
我有一个 SQL 查询,需要使用 NHibernate 的 ICriteria API 表示。 SELECT u.Id as Id, u.Login as Login, u.Fi
我有一个包含多个字段的类,其中一个是 IList> . public class Foo { public IList> Bars { get; set; } } 我正在使用 Fluent NHi
在使用 QueryOver 或 ICriteria 进行查询时,是否可以在 NHibernate 中指定外部连接的附加条件? 我需要在外部连接表上添加一些额外的条件,但 NHibernate 总是将它
在 NHibernate使用 Load 时,您可以轻松受益于一级缓存或 Get方法。但是ICriteria呢? , HQL , Linq-to-NHibernate和 QueryOver ?他们也使用
我们正在尝试使用 WCF 和 ICriteria 创建一个很酷的 API,例如: [ServiceContract] public class ProductService { [OperationC
我是一名优秀的程序员,十分优秀!