2016-04-07 7 views
1

System.Linq.Dyanmic(Install-Package System.Linq.Dynamic)を使用していますが、IndexOfオーバーロードを使用しようとしていますStringComparison。しかし、PersonオブジェクトにStringComparison演算子を適用しようとしているように動作しています。クエリを正しく書いていますか?System.Linq.Dynamic Error 'Person'型のプロパティまたはフィールド 'StringComparison'が存在しません。

try 
{ 
    IEnumerable<Person> dynamicLinqItems = people.Where("(FirstName.IndexOf(@0, StringComparison.OrdinalIgnoreCase) >= 0)", "T"); 
} 
catch (Exception exception) 
{ 
    Console.WriteLine(exception); 
} 

エラーメッセージ

No property or field 'StringComparison' exists in type 'Person' 

オブジェクト

public class Person 
{ 
    public string FirstName { get; set; } 
    public string LastName { get; set; } 
    public DateTime Birthday { get; set; } 

    public int Age 
    { 
     get 
     { 
      DateTime now = DateTime.Today; 
      int age = now.Year - Birthday.Year; 
      if (now < Birthday.AddYears(age)) 
      { 
       age--; 
      } 
      return age; 
     } 
    } 
} 

答えて

1

それは、列挙型を使用しての問題かもしれ:How to use Enums with Dynamic Linq?

は、以下のことを試してみてください。

IEnumerable<Person> dynamicLinqItems = people.Where("(FirstName.IndexOf(@0, @1) >= 0)", "T", StringComparison.OrdinalIgnoreCase); 
関連する問題