gpt4 book ai didi

c# - 行计数

转载 作者:搜寻专家 更新时间:2023-10-30 20:52:17 24 4
gpt4 key购买 nike

我正在构建一个 Web 应用程序,我需要根据一些限制获取数据库中一个表的行数,因此我的代码如下所示:

db.Query<DutyDoctor>()
.Where(x => x.Duty.Time.ToUpper() == periodo.ToUpper())
.Where(x => x.Doctor.Id == doctorId)
.Count(x => x.EnterDatetime.Year == ano || x.ExitDatetime.Year == ano);

我读到过这样的查询会降低性能,因为它需要获取所有对象,创建一个对象列表,而不是只给我列表的长度,然后,因为我只想要遵守这些限制的行数,我见过一些这样的例子:

 db.QueryOver<DutyDoctor>()
.Where(x => x.Duty.Time.ToUpper() == periodo.ToUpper())
.Where(x => x.Doctor.Id == doctorId)
.Where(x => x.EnterDatetime.Year == ano || x.ExitDatetime.Year == ano)
.RowCount();

它没有用,我有一个异常(exception),所以我想问一下我如何使第二个示例工作以及如何提高第一个示例的性能,使其仅从中获取行数数据库,使用 db.QueryOver()db.Query()




*dbNHibernate.ISession

类型

最佳答案

这是一个使用投影获取行数的示例:

public int GetNumberOfRecordsFromTable()
{
return session.QueryOver<YourTable>()
.Select(Projections.RowCount())
.FutureValue<int>()
.Value;
}

关于c# - 行计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38065458/

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