【问题标题】:Add multiple numeric string values in linq在linq中添加多个数字字符串值
【发布时间】:2012-05-11 06:07:23
【问题描述】:

我首先使用实体​​框架代码并从我们的数据库中提取一些数据。在我访问的表中,有 13 列将过去 13 周内客户每周购买的商品数量存储为 char 字段。我无法控制这些数据的存储方式。我需要将 13 周的结果加起来才能得到总和,因此需要第 1 周 + 第 2 周 + 第 3 周.... = 13 周内购买的商品总数。

在 SQL 中,我只是将 char 转换为 Integer 并将值相加。但我正在努力寻找在 linq 中执行此操作的解决方案。

我试过了

(From c in Table
Select New With {.Usage = (Convert.ToInt32(c.week1) + 
                           Convert.ToInt32(c.week2) + etc)}).ToList()

以及尝试使用 Integer.Parse 而不是 Convert.ToInt32。

如果您有什么可以帮助我的,我将不胜感激。 谢谢。

【问题讨论】:

  • 当您尝试已有的代码或 Integer.Parse 时会发生什么?
  • 您想为一个项目添加所有字段,并要求列出所有添加的权限。 (类似于 DB 中的 Row to column,然后 Sum())
  • 我得到的错误是 LINQ to Entities 无法识别方法 'Int32 Parse(System.String)' 方法,并且该方法无法转换为存储表达式。

标签: vb.net linq entity-framework ef-code-first


【解决方案1】:

EF 无法将 Convert.Int32(以及许多其他 LINQ 语句...)转换为 SQL。您应该只使用 LINQ to Entities 正常执行查询,然后在 LINQ 之外执行转换。

【讨论】:

  • 我认为这可能是解决方案,但希望有一些我在转换时错过的东西。感谢您的回答。
  • 我遇到了同样的问题,但从未找到任何干净的解决方案,您可以使用 TSQL CAST 并从 EF 对数据库手动执行此操作,但我更喜欢保留全代码解决方案。
猜你喜欢
  • 2018-02-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多