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();
还有其他人看到这个问题并找到了解决方法吗?
我从另一个角度提出了解决方案,产生了相同的结果。我之前在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();