- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图在 NHibernate 中使用 QueryOver 执行一些简单的 SQL(使用 sql server 2005)。查询是统计一个序列号在一个项目列表中被重复使用了多少次,然后选择只使用了 1 次的序列号。请注意,我不想要不同的序列号,因为我不想使用超过 1 次使用的序列号。
执行此操作的 SQL 查询是:
SELECT SERNUM, expr1
FROM (SELECT SERNUM, COUNT(SERNUM) AS expr1
FROM ITEM
GROUP BY SERNUM) AS derivedtbl_1
WHERE (expr1 = 1)
到目前为止,我使用 QueryOver 所做的是:
var query = session.QueryOver<Item>()
.Select(Projections.ProjectionList()
.Add(Projections.Count<Item>(x => x.Sernum))
.Add(Projections.GroupProperty("Sernum"))).List();
此代码生成 SQL(尽管它不喜欢将 Count() 列放入列表)。我不确定如何访问 Count() 生成的数据列以仅返回 1。它生成的 SQL 是:
SELECT count(this_.SERNUM) as y0_,
this_.SERNUM as y1_
FROM ITEM this_
GROUP BY this_.SERNUM
我不确定我是否以正确的方式处理这个问题,但希望有人能指出我这一点。
最佳答案
var serials = session.QueryOver<Item>()
.Where(Restrictions.Eq(Projections.Count<Item>(i => i.Id), 1));
.Select(Projections.GroupProperty<Item>(i => i.Sernum))
.List();
应该生成类似的东西
SELECT SERNUM FROM ITEM GROUP BY SERNUM HAVING COUNT(*) = 1
要获取元素,请执行以下操作
var subquery = QueryOver.Of<Item>()
.Where(Restrictions.Eq(Projections.Count<Item>(i => i.Id), 1));
.Select(Projections.GroupProperty<Item>(i => i.Sernum));
var items = QueryOver.Of<Item>()
.WithSubquery.Where(i => i.Sernum).In(subquery);
.List();
关于nhibernate - 如何在 QueryOver 中使用 SQL Count(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7443796/
我有以下疑问: Model.RampActiveHour rah = null; var defaultWeekQuery = QueryOver.Of()
为了保持我的查询独立并可能重用,我倾向于在 NH2 中这样做: public class FeaturedCarFinder : DetachedCriteria { public Featu
我正在尝试在 queryover 调用中解耦 orderby,但这无法编译 protected static void AddOrder(IQueryOver criteria, Expression
我在 Nhibernate QueryOver 中有一个查询,它带回了一组剧集对象(剧集是一个护理咒语),这些对象又具有一组剧集状态作为每个剧集的属性。但是我想改变这一点,以便每一集只带回该集的最新状
假设我有三个简单的表 schedule { Student student { get; set;} Teacher teacher { get; set;} bool Del
我有一个小问题:我会在我的 QueryOver 中插入一个条件来检查变量值。像这样: var qOver = QueryOver.Of(() => myMod) .J
如何通过字符串属性的长度限制查询?例如。就像是: NHSession.QueryOver() .Where(p => p.RegistryCode.Length == 8) 最佳答案 像这样的
尝试使用 QueryOver 和标记的枚举查询。这适用于 Nhibernate.Linq: var results = repo.Query() .Where(x => (x.Classifica
我正在尝试使用 QueryOver 从数据库更新记录. 我的代码最初创建一个实体并保存在数据库中,然后在数据库外部更新相同的记录(来自其他程序,手动或在其他机器上运行的相同程序),当我调用 query
我想要做的是显示一个简单的数据网格,其中包含实体数据及其子项的聚合数据。例如,让我们使用订单和订单项。我想显示订单信息和订单项的数量。 订单 ID、订单日期、NumOfLineItems 现在通常在
我想用 QueryOver 编写这样一个查询,以便结果 SQL 将类似于以下内容: Select Bar, count(*) from Foo group by Bar having count(*)
我想模拟这个查询: SELECT * FROM FOO WHERE ID IN (1,2,3) 我怎样才能在 FNH 中做到这一点? var ids = new List{1,2,3}; var re
我正在尝试从我的 User 对象中加载多对多集合中的角色。 Role role = null; IQueryOver query = session.QueryOver()
我有以下使用子查询的 NHibernate 查询: NHContext.Session.QueryOver() .WithSubquery.WhereProperty(x =>
我有这个 设想: class User { Id, UserName } class UserRelationship { User GroupUser, User MemberUser } and
我在投影 sql Coalesce 函数时遇到了 nhibernate 问题。 我正在比较来自两个不同实体的两个具有相同名称的字符串属性。在生成的 SQL 中,仅比较第一个实体的相同属性,如下所示:
StackOverflow 用户您好, 我遇到了这个问题我有三个 QueryOver,每个都返回一个候选 id 列表,然后我用它来引入这些候选。为此我编写了以下代码。 private
如何使用 QueryOver 重写此 SQL?我不确定 QueryOver 的连接优先级和解析是如何工作的。 SELECT DISTINCT T1.* FROM T1 LEFT JOIN T2
我的类(class)的简单示例: public class Post { public IEnumerable Tags { get; set; } } 用户检查一些感兴趣的标签来过滤帖子列表
考虑这个人为的域: namespace TryHibernate.Example { public class Computer { public int Id { get; set; }
我是一名优秀的程序员,十分优秀!