Я новичок в nhibernate и мне нужно сделать предварительный запрос, потому что мой код возвращает неправильные результаты. В основном мне нужно проверить, является ли первое свойство пустым или пустым, а второе - вторым свойством, а также пустым или пустым, а затем вернуть их результат.
Я пробовал это, но результаты неверны (возвращает false && true true)
var _all2 = queryOver.SelectList(list => list
.Select(
Projections.Conditional(
_first
&&
_second,
Projections.Constant(true), Projections.Constant(false)))).List<bool>();
Этот код работает, но мне нужно перенести его в один запрос
PropertyProjection prop = Projections.Property("LoginName");
PropertyProjection prop2 = Projections.Property("Passwordhash");
AbstractCriterion _first = Restrictions.And(Restrictions.IsNotNull(prop), Restrictions.Not(Restrictions.Eq(Projections.SqlFunction("trim", NHibernateUtil.String, prop), "")));
AbstractCriterion _second = Restrictions.And(Restrictions.IsNotNull(prop2), Restrictions.Not(Restrictions.Eq(Projections.SqlFunction("trim", NHibernateUtil.String, prop2), "")));
IList<bool> _a1 = queryOver.SelectList(list => list
.Select(Projections.Conditional(_first, Projections.Constant(true), Projections.Constant(false)))).List<bool>();
IList<bool> _a2 = queryOver.SelectList(list => list
.Select(Projections.Conditional(_second, Projections.Constant(true), Projections.Constant(false)))).List<bool>();
bool[] ar1 = _a1.ToArray<bool>();
bool[] ar2 = _a2.ToArray<bool>();
bool[] res = new bool[ar1.Length];
for (int i = 0; i < ar1.Length; i++)
{
res[i] = ar1[i] && ar2[i];
}
Мне нужно перенести мой код в один запрос запроса