我试图使用动态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? –