首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >LINQ to NHibernate和字符串比较的奇怪问题

LINQ to NHibernate和字符串比较的奇怪问题
EN

Stack Overflow用户
提问于 2010-02-21 17:28:53
回答 2查看 1.3K关注 0票数 1

我正在使用LINQ to NHibernate,在比较字符串时遇到了一个奇怪的问题。下面的代码运行良好,但当我取消注释: //MyCompareFunc(dl.DamageNumber,damageNumberSearch) &&和注释: dl.DamageNumber.Contains(damageNumberSearch) &&时,它就崩溃了,似乎MyCompareFunc()总是返回true,而dl.DamageNumber.Contains(damageNumberSearch)有时返回true,有时返回false。

换句话说,当我在LINQ query中直接使用string.Contains()时,它可以工作,但当我将它移到一个方法中时,它不工作。

代码语言:javascript
复制
    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);
    }
EN

Stack Overflow用户

发布于 2010-02-21 19:42:00

Linq使用表达式,而不是编译的函数。如果您使用expression>而不是"compiled“方法,那就没问题了。

票数 1
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2305451

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档