首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Linq PredicateBuilder

Linq PredicateBuilder
EN

Stack Overflow用户
提问于 2011-12-22 21:56:28
回答 1查看 736关注 0票数 2
代码语言:javascript
复制
public static IQueryable<SearchProfile> FilterData(string Filter, Repository<SearchProfileContext> dc)
    {
        IQueryable<SearchProfile> data = null;
        var predicate = PredicateBuilder.True<SearchProfile>();
        Filter = ExcludedParam(Filter);
        if (!string.IsNullOrEmpty(Filter))`enter code here`
        {
            var stringToSplit = Filter;`enter code here`
            List<string[]> arrays = new List<string[]>();
            var primeArray = stringToSplit.Split('|');
            for (int i = 0; i < primeArray.Length; i++)
            {
                string first = primeArray[i];
                if (first.Contains("chkOrientation") == true)
                {
                    string[] Array = first.Replace("chkOrientation=", "").Split(',');
                    predicate = predicate.And(a => Array.Contains(a.OrientaionID.ToString()));
                }
                if (first.Contains("chkProfession") == true)
                {
                    string[] Array = first.Replace("chkProfession=", "").Split(',');
                    **predicate = predicate.And(a => Array.Contains(SqlFunctions.StringConvert((Double)a.ProfessionID)));**
                }
            }
            data = dc.Select<SearchProfile>().Where(predicate).Distinct();
            return data;
        }
        data = (from a in dc.Select<SearchProfile>().Where(a => a.PersonID > 0) select a).Distinct();
        return data;
    }

当我运行我的程序时,我得到了下面这个讨厌的错误:

LINQ to Entities无法识别方法Int32 ToInteger(System.Object)方法,并且此方法无法转换为存储表达式。

然后,我使用SqlFunctions.StringConvert使其工作,但生成的SQL LINQ没有进行计算。这是示例输出(它正在比较'1‘和'2’,而不是1和2)**

EN

回答 1

Stack Overflow用户

发布于 2011-12-30 19:23:37

为什么要将a.ProfessionID强制转换为双倍?a.ProfessionID是什么类型的?我认为存在到整数的隐式转换,这会导致调用ToInteger方法。

为什么不首先将Array中的项转换为整数,然后在查询中使用Array of int?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8604896

复制
相关文章

相似问题

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