没有想到办法序列化Hashtable,最后用用类替换了Hashtable
using System;
namespace VirtualBank.Core
{
/**//// <summary>
/// 查询条件
/// </summary>
public class Condition
{
public Condition()
{
}
public string Availability;
public string Deleted;
public string Money;
//public DateTime _date;
public string SLn;
public string ELn;
public string OEM;
public string Business;
public string SAvailableDate;
public string EAvailableDate;
public string Sn;
}
}
namespace VirtualBank.Core
{
/**//// <summary>
/// 查询条件
/// </summary>
public class Condition
{
public Condition()
{
}
public string Availability;
public string Deleted;
public string Money;
//public DateTime _date;
public string SLn;
public string ELn;
public string OEM;
public string Business;
public string SAvailableDate;
public string EAvailableDate;
public string Sn;
}
}
功能是用Nhibernate实现根据查询条件自动查询,排序
public IList QuerySnInfo(Condition condition, params string[] sortProperties)
{
ICriteria crit = _coreRepository.ActiveSession.CreateCriteria(typeof(SNInfo));
if(condition.Availability != "")
{
crit.Add(Expression.Eq("Availability",bool.Parse( condition.Availability)));
}
if(condition.Deleted!= "")
{
crit.Add(Expression.Eq("Deleted",bool.Parse( condition.Deleted)));
}
if(condition.Money != "")
{
crit.Add(Expression.Eq("Money",int.Parse ( condition.Money)));
}
if(condition.Business!= "")
{
crit.Add(Expression.Eq("Business",condition.Business));
}
if(condition.OEM!= "")
{
crit.Add(Expression.Eq("OEM",condition.OEM));
}
if(condition.Sn!= "")
{
crit.Add(Expression.Eq("Sn",condition.Sn));
}
if(condition.SLn !=""&&condition.ELn !="")
{
crit.Add(Expression.Between("Ln",int.Parse( condition.SLn),int.Parse( condition.ELn)));
}
if(condition.SAvailableDate !=""&&condition.EAvailableDate !="")
{
crit.Add(Expression.Between("Ln",DateTime.Parse(condition.SAvailableDate),DateTime.Parse( condition.EAvailableDate)));
}
if (sortProperties != null)
{
foreach (string sortProperty in sortProperties)
{
crit.AddOrder(Order.Asc(sortProperty));
}
}
return crit.List();
}
{
ICriteria crit = _coreRepository.ActiveSession.CreateCriteria(typeof(SNInfo));
if(condition.Availability != "")
{
crit.Add(Expression.Eq("Availability",bool.Parse( condition.Availability)));
}
if(condition.Deleted!= "")
{
crit.Add(Expression.Eq("Deleted",bool.Parse( condition.Deleted)));
}
if(condition.Money != "")
{
crit.Add(Expression.Eq("Money",int.Parse ( condition.Money)));
}
if(condition.Business!= "")
{
crit.Add(Expression.Eq("Business",condition.Business));
}
if(condition.OEM!= "")
{
crit.Add(Expression.Eq("OEM",condition.OEM));
}
if(condition.Sn!= "")
{
crit.Add(Expression.Eq("Sn",condition.Sn));
}
if(condition.SLn !=""&&condition.ELn !="")
{
crit.Add(Expression.Between("Ln",int.Parse( condition.SLn),int.Parse( condition.ELn)));
}
if(condition.SAvailableDate !=""&&condition.EAvailableDate !="")
{
crit.Add(Expression.Between("Ln",DateTime.Parse(condition.SAvailableDate),DateTime.Parse( condition.EAvailableDate)));
}
if (sortProperties != null)
{
foreach (string sortProperty in sortProperties)
{
crit.AddOrder(Order.Asc(sortProperty));
}
}
return crit.List();
}