总和可为 null 的 Linq 查询

2024-01-15

from i in Db.Items
select new VotedItem
{
    ItemId = i.ItemId,
    Points = (from v in Db.Votes
              where b.ItemId == v.ItemId
              select v.Points).Sum()
}

我收到了这个查询,但是如果没有发现投票,则查询会失败:

The null value cannot be assigned to a member with type System.Int32 which is a non-nullable value type.

我认为它是因为 sum 返回一个 int 而不是一个可为 null 的 int,给 sum 一个 int?因为输入只给出相同的错误,可能导致 sum 只适用于整数。

有什么好的解决方法吗?


您想要使用 Sum 的可为 null 形式,因此请尝试将您的值转换为可为 null:

from i in Db.Items
select new VotedItem
{
    ItemId = i.ItemId,
    Points = (from v in Db.Votes
              where b.ItemId == v.ItemId
              select v.Points).Sum(r => (decimal?) r.Points)
}

这里更详细地讨论您的问题:

http://weblogs.asp.net/zeeshanhirani/archive/2008/07/15/applying-aggregates-to-empty-collections-causes-exception-in-linq-to-sql.aspx http://weblogs.asp.net/zeeshanhirani/archive/2008/07/15/applying-aggregates-to-empty-collections-causes-exception-in-linq-to-sql.aspx

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

总和可为 null 的 Linq 查询 的相关文章

随机推荐

  • 如何获取 DD-MM-YYYY 格式的日期

    我正在使用 Parse 数据库 我存储日期格式 使用控制台时我得到这种格式 Tue Jul 18 2017 15 46 47 GMT 0100 CET 我想获得这种格式 18 07 2017 有什么想法请 可以使用以下代码来完成 let t
  • 抓取屏幕分辨率并根据大小显示结果

    我正在尝试根据屏幕分辨率大小显示数据库的结果 我上周发布了一个关于如何获取宽度的问题 并且能够在此处的一些想法的帮助下提出这个jquery 但无法完成第二个方面 即根据大小显示结果
  • 您正在使用遗留实现。请更新您的代码:使用createWrapper() 和wrapper.useWrappedStore()。 nextjs 还原?

    我在使用 redux 工具包和 next js 时遇到错误 我面临着这个遗留警告 You are using legacy implementaion Please update your code use createWrapper an
  • 填充 NaN 值

    我有一个数据框 TIMESTAMP P ACT KW PERIODE TARIF P SOUSCR 2016 01 01 00 00 00 116 HC 250 2016 01 01 00 10 00 121 HC 250 2016 01
  • doc.save() 与 jspdf 抛出错误

    当我尝试使用 jsPDF 的 save 函数时 它抛出以下错误 ReferenceError saveAs 未定义 我只是尝试一个非常简单的例子 var doc new jsPDF doc text 20 20 Hello world do
  • 什么是类型和效果系统?

    The 维基百科文章关于效果系统 http en wikipedia org wiki Effect system目前只是一个简短的存根 我有一段时间想知道什么是效果系统 除了类型系统之外 是否还有其他语言还具有效果系统 可能的 假设的 符
  • 在运行时枚举 .NET 程序集资源

    我有一个资源程序集 其中包含使用构建的图像文件Resource or Content建立行动 这使得可以使用 Uris 访问这些文件 但是我找不到枚举此类资源的方法 如果我将构建操作设置为嵌入式资源可以使用以下代码枚举文件 string r
  • 使用 GADT 在 Haskell 中重新创建 Lisp 的“apply”

    作为练习 我正在尝试重新创建 Lispapply在哈斯克尔 我不打算将其用于任何实际目的 我只是认为这是一个更好地熟悉 Haskell 类型系统和一般类型系统的好机会 所以我也不是在寻找其他人的实现 我的想法如下 我可以使用 GADT 来
  • 如何访问NTAG213 NFC交互计数器?

    我正在开发一个 Android 应用程序 我需要查找 NFC 标签被读取的次数 我已经浏览了 NFC 论坛上的文档 对于 NTAG213 有一个名为 MIRROR CONF 的字段 使用该字段可以确定交互计数器是否启用 禁用以及计数器的值
  • 如何用java播放.wav文件

    我正在尝试用 Java 播放 wav 文件 我希望它执行以下操作 按下按钮时 会发出短促的蜂鸣声 我用谷歌搜索了一下 但大部分代码都不起作用 有人能给我一个简单的代码片段来播放 wav 文件吗 最后我设法做到了以下几点并且效果很好 impo
  • p 与 ol 或 ul 的表单样式

    通常我使用无序列表标签来设计表单 例如 fieldset ul li li ul fieldset
  • 在 Android 上使用 Jackson 库解析大型 JSON 时出现内存不足错误

    我正在使用 Jackson 库来解析来自服务器的大型 JSON 响应 json 的大小约为 7 8 MB 我在这段代码上遇到了 outOfMemoryError ObjectMapper mapper new ObjectMapper Js
  • Gitlab docker executor - 在 before_script 之后缓存图像

    In gitlab ci有一个选项 gitlab ci yml http doc gitlab com ce ci yaml README html文件在任何实际脚本运行之前执行命令 称为before script gitlab ci ym
  • JavaFX 应用程序抛出 NullPointerExceptions 但仍然运行

    我运行的每个 JavaFX 应用程序都会抛出两个 NullPointerException 它们不会阻止甚至影响项目的执行 并且只有在调试模式下运行应用程序时我才能看到它们 我什至遇到了来自 Oracle 的 HelloWorld 示例和这
  • RavenDB 在模型命名空间更改后抛出转换异常

    在数据库中 我已经存储了数百个文档 现在系统架构已经改变 并且 除其他外 模型被迁移到不同的命名空间 在不同的程序集中 下面显示了示例文档的元数据 以及我用来获取此类文档的代码 var configuration documentSessi
  • 如何在 FastAPI 中自定义特定路由的错误响应?

    我想做一个HTTPFastAPI 中需要特定的端点Header 产生一个定制的response代码时Header不存在 并且显示Header as required在 FastAPI 生成的 OpenAPI 文档中 例如 如果我将此端点设置
  • 使用来自多个 PHP 页面上的 AJAX 函数的填充变量更新 SQL 查询

    我试图就这个问题寻求帮助 总而言之 问 它不会像这样逐步更新我的数据库条目 按照我认为可以完成的方式进行 它有点难以解释 但我尝试用最少且可读的代码逐步解释它 我使用原始代码 很难将其转换为可重现的示例 A 1 页面 ma aktuelle
  • 如何在 IIS7 上安装 asp.net mvc 2?

    我已经开发了一个 ASP NET MVC 2 网站 现在需要将其部署到我的 Web 服务器 我已经克服了一些障碍 因为没有安装 ASP NET 等 但我现在已经可以提供纯内容文件了 如果我尝试访问我的 MVC URL 之一 我会得到以下信息
  • 动态更改 APEX_ITEM。 Oracle apex 中的 TEXT 值

    我有一个应用程序 我在其中创建了经典报告 它有 4 列 SELECT KEY APEX ITEM TEXT 6 attribute3 10 attribute3 APEX ITEM HIDDEN 3 KEY APEX ITEM TEXT 4
  • 总和可为 null 的 Linq 查询

    from i in Db Items select new VotedItem ItemId i ItemId Points from v in Db Votes where b ItemId v ItemId select v Point