gpt4 book ai didi

nhibernate - NHibernate对Count(),First()使用条件

转载 作者:行者123 更新时间:2023-12-04 17:05:28 26 4
gpt4 key购买 nike

我有一个关于Criteria方法的问题,与数据库的一对多关系,“一个”是“帐户”,“很多”是“站点”,当我使用CreateCriteria()时,某些方法是不正确的。

像这样:SessionFactory.OpenSession().CreateCriteria(typeof(Account)).List().Count();
在运行之前,我认为SQL应该是SELECT COUNT(*) FROM table,但是SQL是SELECT id, siteurl...FROM table。那么,这怎么了?我该如何解决?

并且First()方法应该是SELECT TOP1 ...FROM table,但是它是SELECT ...FROM table
我是Niberty的菜鸟,请帮帮我。

最佳答案

发生这种情况的原因是,您在查询运行之后并且在数据库外部执行了最后要调用的Count方法。您只计算内存中列表中的元素。要实现您想要的目标,可以使用投影:

var count = session
.CreateCriteria<Account>()
.SetProjection(
Projections.Count(Projections.Id())
)
.UniqueResult<long>();

关于nhibernate - NHibernate对Count(),First()使用条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2475844/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com