我試圖使用動態LINQ運行時數據網格過濾與DataGridFiltering project但我有一個枚舉的問題。動態LINQ枚舉過濾錯誤
例如,我有一個包含類似這樣的枚舉屬性的類:
public class Student
{
public Student(int id,string name,StudentType type)
{
Id = id;
Name = name;
Type = type;
}
public int Id { get; set; }
public string Name { get; set; }
public StudentType Type { get; set; }
}
和StudentType枚舉是:
public enum StudentType : byte
{
Normal=0,
Good
};
我創建一個控制器類與學生的名單的工作。
在我的控制器中,我有一種按類型查找學生的方法。
這是FindByType方法:
public IList<Student> FindByType(string type)
{
return _students.AsQueryable().Where("Type.ToString().StartWith(@0)",type).ToList();
}
當我打電話FindByType方法我得到這個錯誤在動態LINQ的ParseMemberAccess方法:
上式方法 '枚舉' 而無法訪問
感謝您的回答。我使用最新版本的動態LINQ。因爲我使用datagridfilter我不能寫Type.ToString()的Type instate。用戶不知道這是一個枚舉用戶請參閱類型字段az字符串,因此需要通過開始,結束或包含條件來過濾它。 –
我在代碼中添加了一個代碼,可以指定一個字符串,並且您將通過StartsWith過濾返回您希望的列表。然而,你應該能夠得到你想要的中間一段代碼,因爲那個代碼也接受一個字符串方法並使用StartsWith過濾。有什麼理由不能使用標準的Linq? –