【发布时间】:2010-02-21 19:41:59
【问题描述】:
我正在使用 LINQ to NHibernate,在比较字符串时遇到了一个奇怪的问题。以下代码可以正常工作,但是当我取消注释时: //MyCompareFunc(dl.DamageNumber, damageNumberSearch) && 并评论: dl.DamageNumber.Contains(damageNumberSearch) && 然后它崩溃了,似乎 MyCompareFunc() 总是返回 true,而 dl.DamageNumber.Contains(damageNumberSearch) 有时返回 true,有时返回 false。
换句话说,当我在 LINQ 查询中直接使用 string.Contains() 时,它可以工作,但是当我将其移至方法时,它就不起作用了。
internal List<DamageList> SearchDamageList(
DateTime? sendDateFromSearch, DateTime? sendDateToSearch, string damageNumberSearch,
string insuranceContractSearch)
{
var q = from dl in session.Linq<DamageList>()
where
CommonHelper.IsDateBetween(dl.SendDate, sendDateFromSearch, sendDateToSearch) &&
//MyCompareFunc(dl.DamageNumber, damageNumberSearch) &&
dl.DamageNumber.Contains(damageNumberSearch) &&
insuranceContractSearch == null ? true : CommonHelper.IsSame(dl.InsuranceContract, insuranceContractSearch)
select dl;
return q.ToList<DamageList>();
}
private bool MyCompareFunc(string damageNumber, string damageNumberSearch)
{
return damageNumber.Contains(damageNumberSearch);
}
【问题讨论】:
标签: linq nhibernate linq-to-nhibernate