у меня есть этот NHibernate Critera, который прекрасно работаетNHibernate Expression.In бросать исключение
var amount = (decimal)Session.CreateCriteria<Transaction>()
.Add(Expression.Eq("Account.Id", accountId))
.SetProjection(Projections.ProjectionList()
.Add(Projections.GroupProperty("Account.Id"))
.Add(Projections.Sum("InvoiceGross"), "total"))
.SetMaxResults(1)
.SetResultTransformer(Transformers.AliasToEntityMap)
.UniqueResult<IDictionary>()["total"];
, но когда я начинаю добавлять Expression.In
как это
var amount = (decimal)Session.CreateCriteria<Transaction>()
.Add(Expression.Eq("Account.Id", accountId))
.Add(Expression.In("StatusType.Id", statusTypes))
.SetProjection(Projections.ProjectionList()
.Add(Projections.GroupProperty("Account.Id"))
.Add(Projections.Sum("InvoiceGross"), "total"))
.SetMaxResults(1)
.SetResultTransformer(Transformers.AliasToEntityMap)
.UniqueResult<IDictionary>()["total"];
Любые идеи, почему это происходит, на способ statusTypes
является int[]
типа
он начинает бросать исключение "Object reference not set to an instance of an object."
Это SQL-запрос я хочу достичь
SELECT SUM(InvoiceGross) AS total
FROM Transactions
WHERE (AccountID = @accountId) (statusTypeID IN (1,2,3,4))
GROUP BY AccountID
Yup Я получил, где у меня есть исключение, это дало мне представление о том, откуда моя ошибка, UniqueResult дает мне вопрос, когда я возвращаю нулевые данные. +1 – Raymund