take() 使用 MySQL 抛出未实现的异常实体框架 6

本文关键字:实现 异常 实体 框架 使用 MySQL take | 更新日期: 2023-09-27 17:56:51

我收到一个 NotImplementException,其中包含消息"该方法或操作未实现",当使用实体框架 6.0 和 MySQL 运行以下 LINQ 查询时。

entities.Member.
    Where(m => m.MemberSite.Any(s => s.SiteID == siteID)).
    OrderByDescending(m => m.DateCreated).Take(50).ToList();

但是,以下内容(减去 Take(50))工作正常。

entities.Member.
    Where(m => m.MemberSite.Any(s => s.SiteID == siteID)).
    OrderByDescending(m => m.DateCreated).ToList();

还有其他人看到这个问题并找到了解决方法吗?

take() 使用 MySQL 抛出未实现的异常实体框架 6

我从另一个角度提出了解决方案,产生了相同的结果。我之前在MySQL实体框架中的Any()和All()LINQ方法中遇到过问题,所以应该知道这些问题。

相反,执行以下操作会产生正确的结果。

entities.MemberSite.
    Where(s => s.SiteID == siteID).Select(s => s.Member).
    OrderBy(m => m.DateCreated).Take(50).ToList();

您不使用 LINQ 语法的原因是什么?我认为它更容易阅读。这是解决方案的替代方法:

from s in entities.MemberSite
where s.SiteID == siteID
orderby s.DateCreated
select s.Member).Take(50).ToList();