使用 EF core 2.1 调用 DbFunction

2024-01-11

我尝试调用存储在数据库中的标量函数。 这是我的代码:

public class PronosticDbContext : DbContext
{
    public PronosticDbContext(DbContextOptions<PronosticDbContext> options) : base(options)
    {

    }

    [DbFunction(FunctionName = "GetPlayerPointsForDay", Schema = "dbo")]
    public static int GetPlayerPointsForDay(int dayId, int userId) => throw new NotSupportedException();    
}

电话:

private IQueryable<PlayerRankingData> GetPlayerRanking(int? dayId)
{
    return Context.Days.Where(x => x.Id == dayId.Value).Select(x => new PlayerRankingData
    {
        // Some properties
        Users = x.Season.Users.Select(us => new PlayerRankingData.User
        {
            // Other properties
            Last = PronosticDbContext.GetPlayerPointsForDay(x.Id, us.User.Id),
            // Others again
        }).OrderByDescending(u => u.Points).ThenByDescending(u => u.Last).ThenBy(u => u.Login)
    });
}

我不明白为什么,但我总是去NotSupportedException,我的标量函数从未被调用。为什么我错过了?

我也尝试过这样,但结果相同...

modelBuilder
    .HasDbFunction(typeof(PronosticDbContext).GetMethod(nameof(GetPlayerPointsForDay)))
    .HasSchema("dbo")
    .HasName(nameof(GetPlayerPointsForDay));

好,我知道了。

问题是你不能直接调用标量函数(我不知道为什么),它必须封装在 linq 查询中,如下所示:

Last = Context.Users.Select(u => PronosticDbContext.GetPlayerPointsForDay(x.Id, us.User.Id)).FirstOrDefault()

就这样。不需要在 DbContext 中声明,这就足够了:

[DbFunction]
public static int? GetPlayerPointsForDay(int dayId, int userId) => throw new NotSupportedException();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 EF core 2.1 调用 DbFunction 的相关文章

  • 如何从日志文件中制作 JMeter 输出图表?

    我需要生成与 JMeter 相同的图表 但来自我的应用程序 C VB 等 随时间变化的响应时间 https i stack imgur com qDJj9 png 响应时间分布 https i stack imgur com ujcy3 p
  • ASP.NET 解析来自 ajax 调用 javascript 日期的 DateTime 结果

    介绍 我有一个WebMethod在我的 ASP NET 页面上返回一个Person目的 其中一个字段是Birthday这是一个DateTime财产 网络方法 WebMethod public static Person GetPerson
  • 简单注入器:在基类中注入属性

    几个星期以来我一直在使用简易注射器 https simpleinjector org依赖注入容器 取得了巨大成功 我喜欢它的简单配置 但现在我有一个设计 我不知道如何配置 我有一个基类 其中派生出许多类型 并且我想将依赖项注入到基类的属性中
  • PowerShell将字符串拆分为二维数组

    TL DR 使用 PowerShell 我想首先用换行符 n 拆分文本字符串 将其存储到数组中 然后用逗号将这些数组条目拆分为二维数组 我在访问 或可能创建 第二维中的任何信息时遇到问题 INFO 我有以下字符串 存储为 services
  • 将另一个提交导入到我的存储库

    抱歉 新手问题 但是有没有办法将其他人提交 到他自己的存储库 导入到我的存储库 手动更改 900 多个文件将是一件困难的事情 您需要将对方的存储库添加为您的远程存储库 并获取其更改 git remote add matefork

随机推荐

  • Docker - Dockerfile 中使用 RUN 的 MySQL 命令(错误 2002)

    我正在使用 Docker 创建一个以 mysql 作为基础镜像的 dockerfile FROM mysql set root pass ENV MYSQL ROOT PASSWORD password update linux RUN a
  • 远程服务器返回错误:(407) 需要代理身份验证

    我将此代码与 NET 3 5 一起使用并收到错误 远程服务器返回错误 407 需要代理身份验证 using WebClient client new WebClient WebRequest DefaultWebProxy Credenti
  • 如何动态添加分页符到打印页面?

    打印页面上的内容很长 但是我们在打印时将文本的一些内容剪掉了 替代文本 http img694 imageshack us img694 6766 printpage jpg http img694 imageshack us img694
  • Magento - 根据环境加载local.xml

    我想要 3 个app etc local xml文件 将它们称为 local xml staging xml 和 live xml 我想根据我在 vhosts 或 htaccess 中设置的环境变量加载它们 这样我就可以拥有单独的数据库等
  • 为什么 SqlParameter 名称/值构造函数将 0 视为 null?

    我在一段代码中观察到一个奇怪的问题 其中即席 SQL 查询没有产生预期的输出 即使其参数与数据源中的记录匹配 我决定在立即窗口中输入以下测试表达式 new SqlParameter Test 0 Value 这给出了结果null 这让我摸不
  • 如何在WPF中的特定位置添加菜单项?

    我想添加一个像这样的菜单项 AddChild new MenuItem Header Test 然而 问题是菜单项出现在最后 逻辑上 现在我正在寻找一种将其添加到特定位置的方法 A B C 我想将它添加到 A 和 B 之间 XAML 如下所
  • 在 R 中封装 sqldf

    是否可以在sqldf中的字符串内添加注释 就像是 sqldf select ProductID count distinct SalePrice as num regPz from MYDF where SalesFlag 0 coded
  • AndroidStudio - Gradle 中的模块依赖关系

    我在 Android Studio 中使用模块依赖项编译 Android 应用程序时遇到了一些问题 所以 我希望我的应用程序使用 slidingmenu 库 链接here https github com jfeinstein10 Slid
  • 确定 Delphi 中的 WPD 设备类型

    我正在尝试确定我的 WPD 设备在 Delphi 中的类型 在我的应用程序中 我需要知道该设备是手机还是相机或者什么 根据这篇 MSDN 文章 https msdn microsoft com en us library windows h
  • Nginx 无法通过 Ansible 重新启动

    我在剧本中有一个任务 尝试像往常一样通过处理程序重新启动 nginx name run migrations command bash lc some command notify restart nginx 然而 剧本因这个错误而中断 N
  • Feedback.js 服务器 API

    反馈 js http experiments hertzen com jsfeedback 是一个很棒的 jquery 插件 允许您创建反馈表单 其中包括在客户端浏览器上创建的屏幕截图以及表单 如何将捕获的图像和用户的评论发送到服务器端 a
  • 如果未设置变量,则使用函数对其进行初始化 - PHP

    执行脚本时 有时会设置变量 有时不会 有时情况并非如此 我会收到一个通知 表明该变量未定义 为了清除通知 我简单地添加了以下代码 if isset var var NULL 它可以根据需要工作 因为它测试变量是否尚未设置 这样我们就不会设置
  • 有没有办法知道 iOS 中的应用程序何时被删除?

    我的问题是这样的 我在 iOS 应用程序上安排了一些 UILocalNotifications 问题是 如果我删除应用程序而不删除与通知关联的对象 并因此从 ScheduledNotifications 数组中删除通知 通知仍然会触发 尽管
  • 在 C# 中表示什么[重复]

    这个问题在这里已经有答案了 我是 C 新手 直接深入修改我收到的项目的一些代码 但是 我不断看到这样的代码 class SampleCollection
  • Python C API 如何将结构数组从 C 传递到 Python

    对于我正在创建的 python 模块 我想向 python 用户传递一个如下所示的结构数组 struct tcpstat inet prefix local inet prefix remote int lport int rport in
  • CSS规则中选择器的优先级

    让我先展示一下示例代码 tbl tr hover background color FFA270 important tbl td nth child odd background color F0FFE2 cell height 5ex
  • 选项菜单操作栏

    谁能明白为什么我的帮助图标没有显示在操作栏中 我已将代码的相关部分粘贴在下面 谢谢 菜单topline xml
  • 使用 jQuery 交换 div 内容

    这是我的 HTML div class large img src images photos Interior jpg alt The interior div class caption The interior div div div
  • 如何将 POINT mysql 类型与 mysqli - php 一起使用[重复]

    这个问题在这里已经有答案了 基于这张桌子 http php net manual en mysqli stmt bind param php来自 PHP net Type specification chars Character Desc
  • 使用 EF core 2.1 调用 DbFunction

    我尝试调用存储在数据库中的标量函数 这是我的代码 public class PronosticDbContext DbContext public PronosticDbContext DbContextOptions