Take()在MySQL中没有实现Exception Entity Framework 6

时间:2014-04-05 02:48:21

标签: c# mysql linq entity-framework

我收到带有消息&#34的NotImplementedException;未实现方法或操作。"使用带有MySQL的Entity Framework 6.0运行以下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();

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

2 个答案:

答案 0 :(得分:0)

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

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

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

答案 1 :(得分:0)

您是否有理由不使用LINQ语法?我觉得它更容易阅读。这是您的解决方案的替代方案:

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