在枚举类型上使用Linq筛选记录

在枚举类型上使用Linq筛选记录,linq,enums,Linq,Enums,我希望这是一个简单的解决方案。我在表(Stocks)中有一个字段(PressType),它是使用枚举填充的种子。该表将数据存储为整数。然而,当我想通过Linq查询一些数据时,它会给我带来一些问题。我可以使用此格式筛选表中的任何其他字段,但它会在Enum填充的字段上显示 “==”运算符不能应用于“Models.PressType”和“string”类型的操作数 如果您能提供任何帮助,我们将不胜感激,谢谢 var test = db.Stocks.Where(x => x.PressType

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

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

如果您能提供任何帮助,我们将不胜感激,谢谢

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

你的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);
string myValue=SomeControl.Text;
Models.PressType myValueAsEnum=(Models.PressType)
Parse(typeof(Models.PressType),myValue);
IQueryable test=db.Stocks.Where(x=>x.PressType==myValueAsEnum);