我在使用where条件的三元运算符以及LinQ查询中的group by子句时遇到问题。
我的应用程序是带有Entity Framework 6的MVC4(MySql.Data.Entity.EF6.dll版本6.9.6),连接到MySQL DB - 5.6。
此处列出的示例查询:
bool activeFlag = true;
var objCurrency = (from table in Db.Table.AsNoTracking()
where (activeFlag ? table.Active == 1 : table.Active == 0)
group table by table.Code into grp
select grp.OrderByDescending(t =>table.EffectiveFrom). FirstOrDefault()).ToList();
查询在MS SQL 2008 R2上正常运行,但在MySql上失败。
如果我们从where子句中删除三元运算符,或者如果我们删除组,则查询正在运行。
还有其他方法可以编写业务逻辑,但我必须在很多其他地方重写代码。我正在努力避免返工。
请建议如何解决此问题。这是EF MySQL提供程序中的错误吗?