在Enum类型上使用Linq过滤记录

时间:2014-03-10 06:51:17

标签: linq enums

我希望这是一个简单的解决方案。我在表(Stocks)中有一个字段(PressType),它是使用Enum填充的种子。该表将数据存储为整数。但是,当我想通过Linq查询一些数据时,它给了我一些问题。我可以使用这种格式过滤表格中的任何其他字段,但是在Enum填充字段中显示

  

“==”运算符不能应用于“Models.PressType”和“string”类型的操作数。

感谢您提供的任何帮助。

var test = db.Stocks.Where(x => x.PressType == myValue);

1 个答案:

答案 0 :(得分:0)

您的Linq没有任何问题。您的问题是myValue的类型为string。您需要先将字符串转换为枚举。

string myValue = SomeControl.Text;
Models.PressType myValueAsEnum = (Models.PressType)
              Enum.Parse(typeof(Models.PressType), myValue);
IQueryable<Stock> test = db.Stocks.Where(x => x.PressType == myValueAsEnum);