どのように私はNHibernateはQueryOver APIを使用して行数を得るのですか?
-
21-09-2019 - |
質問
私はNHibernateは3.xのの一部であるQueryOver APIを使用しています私は、行数を取得したいと思いますが、私が使用している方法は、すべてのオブジェクトを返し、その後、コレクションの数を取得します。ちょうど行数の整数/ long値を返す方法はありますか?
私は現在使用しています:
_session.QueryOver<MyObject>().Future().Count()
解決
APIで遊んでのビットの後、これはそれを行います。
_session.QueryOver<MyObject>()
.Select(Projections.RowCount())
.FutureValue<int>()
.Value
あなたは将来としてそれを返すようにしたくない場合は、あなただけの代わりにSingleOrDefault<int>()
を取得することができます。
他のヒント
別の方法
var count = Session.QueryOver<Employer>()
.Where(x => x.EmployerIsActive)
.RowCount();
別の方法:
int employerCount = session
.QueryOver<Employer>()
.Where(x => x.EmployerIsActive) // some condition if needed
.Select(Projections.Count<Employer>(x => x.EmployerId))
.SingleOrDefault<int>();
イムは次のように使用します:
public int QuantidadeTitulosEmAtraso(Sacado s)
{
TituloDesconto titulo = null;
Sacado sacado = null;
var titulos =
_session
.QueryOver<TituloDesconto>(() => titulo)
.JoinAlias(() => titulo.Sacado, () => sacado)
.Where(() => sacado.Id == s.Id)
.Where(() => titulo.Vencimento <= DateTime.Today)
.RowCount();
}
所属していません StackOverflow