问题描述
这是我的代码
if (channelCount > 1)
{
for (int i = 0; i < channelCount; i++)
{
int minorderItemFirst = Session.GetNamedQuery("GetMinorderItem")
.SetInt32("year",item.Year)
.SetString("orderKind",item.OrderKind)
.SetInt32("orderNo",item.OrderNo)
.SetInt32("orderItem",item.OrderItem)
.UniqueResult<int>();
//I have minorderItemFirst as int and I need to use it as .SetInt32("orderItem")
// Session.GetNamedQuery("GetMinorderItem")
// .SetInt32("year",item.Year)
// .SetString("orderKind",item.OrderKind)
// .SetInt32("orderNo",item.OrderNo)
// .SetInt32("orderItem",minorderItemFirst)
// .UniqueResult<int>(); .... etc as said in for loop
// I am ok to increment minorderItemFirst in every next call
}
谢谢您的帮助!
解决方法
我有类似的东西,但是我不确定这是理想的解决方案。有人可以解释如何用更少的代码或更优雅的方式实现它吗?
if (chCount > 1)
{
int[] results = new int[chCount + 1];
int firstNumber = Session.GetNamedQuery("GetMinOrderItem")
.SetInt32("year",item.Year)
.SetString("orderKind",item.OrderKind)
.SetInt32("orderNo",item.OrderNo)
.SetInt32("orderItem",item.OrderItem)
.UniqueResult<int>();
results[0] = firstNumber;
for (int i = 1; i < chCount; i++)
{
results[i] = Session.GetNamedQuery("GetMinOrderItem")
.SetInt32("year",item.Year)
.SetString("orderKind",item.OrderKind)
.SetInt32("orderNo",item.OrderNo)
.SetInt32("orderItem",results[i - 1])
.UniqueResult<int>();
}
}