我已经linq到nhibernate查询:
var listka = from i in FakturyZakupu.Queryable where String.Compare(i.REJESTRY.REJ_KOD,sbWartoscBetween1.ToString()) >= 0 && String.Compare(i.REJESTRY.REJ_KOD,sbWartoscBetween2.ToString()) <= 0 select i; lista = listka.ToList();
而且它的编译效果很好,但是如果我使用它,则会抛出异常:
NotSupportedException int32 CompareTo(System.String,System.String)
如何在两个值之间使用linq查询字符串值。像在SQL中一样:从ID在a和b之间的表中选择*。
NHibernate的Linq提供程序是非常可扩展的。您可以扩展它以允许任何表达式,只要您可以用HQL编写该表达式即可,因为NHibernate的Linq正在转换为HQL。
因此,如果您为Between编写扩展名,则代码可能如下所示:
var listka = from i in FakturyZakupu.Queryable where i.REJESTRY.REJ_KOD.Between(sbWartoscBetween1, sbWartoscBetween2) select i; lista = listka.ToList();