0

述語ビルダーを使用して MVC3 を介してクエリを実行しようとしています。エラーが発生しています

「型 'System.Boolean' を型 'System.Object' にキャストできません。LINQ to Entities はエンティティ データ モデルのプリミティブ型のキャストのみをサポートします。」

以下のようにクエリが渡されました

if (!string.IsNullOrEmpty(SearchObj.EmployeeIDSortId.ToString()) && SearchObj.EmployeeIDSortId > 0)
    {

        string[] vals =new string[' ']; 
        if (SearchObj.EmployeeIDSortId == 1)
        {
            vals = new string[] { "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k","l" };

        }
        else if (SearchObj.EmployeeIDSortId == 2)
        {

            vals = new string[] { "m", "n", "o", "p", "q", "r", "s" };

        }
        else if (SearchObj.EmployeeIDSortId == 3)
        {


            vals = new string[] { "t", "u", "v", "w", "x", "y", "z" };
        }


        employeepredicate =
            employeepredicate.And(emp => emp.EmployeeName.Substring(0, 1).ToLower().Equals(vals.Any()));


         }

これの何が問題なのか教えてください。私のクエリ vals.Any() が原因だと思います。

ありがとう

4

1 に答える 1

2

前置きさせてください - 私はこのAnd方法に慣れて.Equals(vals.Any())いませんが、私には正しくないようです。したがって、Andブール値を返す関数を取ると仮定します。本当に探しているのは、従業員名の最初の文字が vals 配列に含まれているかどうかを調べることです。

employeepredicate = employeepredicate.And( emp => vals.Contains(emp.EmployeeName.Substring(0, 1).ToLower()));

于 2012-05-20T12:58:17.967 に答える