【问题标题】:System.NotImplementedException in EntityFramework linq query?EntityFramework linq 查询中的 System.NotImplementedException?
【发布时间】:2020-01-15 11:26:50
【问题描述】:

代码:

var query = await _messageGroupRepository.GetAll()
                .Include(x => x.Users)
                .Where(x => x.Users.Any(y => y.Id == 1))
                .OrderByDescending(x => x.Date)
                .Take(5)
                .ToListAsync();

结果:System.NotImplementedException

解决方案?

【问题讨论】:

  • 您能提供异常的堆栈跟踪吗?
  • 你实现了 Include 方法吗?如果有,能否提供代码。
  • 阅读How to Ask 并提供所有必要的详细信息。从堆栈跟踪和相关来源开始。我猜你的_messageGroupRepository.GetAll() 会抛出这个异常。
  • 除了我的回答(如下)之外,可能值得注意的是,包含堆栈跟踪(或至少部分)是一个好主意。它将揭示堆栈跟踪发生的位置。
  • 解决从代码中删除“Take”时的问题。

标签: c# entity-framework linq


【解决方案1】:

欢迎来到 StackOverflow。 NotImplementedException 通常用作尚未实现的方法中的占位符(顾名思义)。它应该很少出现在生产代码中,我认为我从未在成熟的框架或库(如 LINQ)中看到它。

在您的情况下,我猜是您的存储库中的 GetAll() 方法引发了异常(但您可以检查堆栈跟踪),因为它是那里唯一的非 LINQ 方法。

【讨论】:

【解决方案2】:

MSDN:

请求的方法或操作未实现时引发的异常。

解决办法:找一个没有实现的方法,修复一下。

【讨论】:

    猜你喜欢
    • 2015-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-12
    • 1970-01-01
    • 1970-01-01
    • 2021-11-05
    • 1970-01-01
    相关资源
    最近更新 更多