我使用Mysql WorkBench和Entity框架6。我想为以前的查询添加条件"where"。如果我为简单属性(string
)添加条件,则它成功。但我为List<object>
添加了条件,它是错误消息"在'where子句'.中的未知列'Extent1.id'
我如何添加条件进行查询,条件是列表
查询选择:
var result = from mus in ct.musics
where mus.state == Contant.Keys.StateAction.A.ToString()
select (new
{
MusicKey = mus.id,
OptionKey = mus.musicoptions.Select(i => i.OptionsId),
});
在我为结果添加另一个Where(List)之后这是错误"where子句中的未知列"Extent1.id"
foreach (ClassOption obj in request.Options)
{
if (obj.type.ToString() == "opt")
{
string a = obj.key.ToString();
result = result.Where(i => i.OptionKey.ToList().Contains(a));
}
}
但我为结果添加了另一个Where(simple)这是成功
foreach (ClassOption obj in request.Options)
{
if (obj.type.ToString() == "opt")
{
string a = obj.key.ToString();
result = result.Where(i => i.MusicKey == "test");
}
}
注意:在我使用ms-sql2008和EF6之前,以前的语句可以运行,但当我改为使用mysql时,这是一个错误。
也许你的条件应该是这样的:
result = result.Where(i => i.OptionKey.ToString().ToList().Contains(a));