LINQ to Entities 查询不支持转换为十进制

2024-02-25

我有一个数据库表事务(transactionID,LocalAmount ...)。其中 Localmount 属性的数据类型是float。在用户界面上我试图返回SUM按钮单击事件中一行中的列 (Localamount)。

我用过decimal代替float

但是我在转换到的代码上遇到错误decimal

System.NotSupportedException was unhandled by user code
Message=Casting to Decimal is not supported in LINQ to Entities queries, because the required precision and scale information cannot be inferred.

The

 public static IEnumerable<TransactionTotalForProfitcenter> GetTotalTransactionsForProfitcenter(int profitcenterID)
    {
        List<TransactionTotalForProfitcenter> transactions = new List<TransactionTotalForProfitcenter>();
        using (var context = new CostReportEntities())
        {
          transactions = (from t in context.Transactions
                            join comp in context.Companies on t.CompanyID equals comp.CompanyID
                            join c in context.Countries on comp.CountryID equals c.CountryID
                            where c.CountryID.Equals(comp.CountryID) && t.CompanyID == comp.CompanyID 
                             
                            join acc in context.Accounts
                                 on t.AccountID equals acc.AccountID
                            join pc in context.Profitcenters
                                on t.ProfitcenterID equals pc.ProfitcenterID
                            group t by pc.ProfitcenterCode into tProfitcenter
                            
                            select new TransactionTotalForProfitcenter
                            {
                                ProfitcenterCode = tProfitcenter.Key,
                    //the error is occurring on the following line           
                                TotalTransactionAmount = (decimal)tProfitcenter.Sum(t => t.LocalAmount),  
                   //the error is occurring on the following line       
                                TotalTransactionAmountInEUR = (decimal)tProfitcenter.Sum(t => t.AmountInEUR) //the error is occurring on this line 
                            }
                            ).ToList();

        }
        return transactions;

    }

我尝试了以下帖子中的一些选项,但没有成功。

  • LINQ to SQL 奇怪的浮点行为 https://stackoverflow.com/a/1817557/1108500
  • 从十进制转换为浮点型 https://stackoverflow.com/a/1817557/1108500

谁能指出我可以尝试哪些其他选择。如果我对 LINQ 的了解太微不足道,请原谅我。


实体框架表明它不支持您想要的转换。一种解决方法是简单地在数据库中执行尽可能多的工作,然后在内存中完成该过程。在您的情况下,您可以以其本机类型计算总和,将结果作为匿名类型拉入内存,然后在构造实际需要的类型时执行转换。要获取原始查询,您可以进行以下更改:

select new // anonymous type from DB
{
    ProfitcenterCode = tProfitcenter.Key,
    // notice there are no conversions for these sums
    TotalTransactionAmount = tProfitcenter.Sum(t => t.LocalAmount),       
    TotalTransactionAmountInEUR = tProfitcenter.Sum(t => t.AmountInEUR)
})
.AsEnumerable() // perform rest of work in memory
.Select(item =>
     // construct your proper type outside of DB
    new TransactionTotalForProfitcenter
    {
        ProfitcenterCode = item.ProfitcenterCode,
        TotalTransactionAmount = (decimal)item.TotalTransactionAmount
        TotalTransactionAmountInEUR = (decimal)item.TotalTransactionAmountInEUR
    }
).ToList();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

LINQ to Entities 查询不支持转换为十进制 的相关文章

  • 函数的不明确的引用/值版本

    考虑以下函数原型 void Remove SomeContainer Vec const std size t Index SomeContainer Remove SomeContainer Vec const std size t In
  • Windows CE 6.0 和运行时链接到调试 DLL /MDd

    我在 x86 PC 上使用 Windows CE 6 0 R3 我已经为该平台构建了 NK bin 和 SDK 但我有一些问题需要了解如何使用 MTd 调试 DLL 构建控制台应用程序 如果我尝试构建这个 main c with MDd i
  • 有没有办法让我的程序用更少的代码运行?

    我为学校作业编写了以下代码 它编译并打印所有正确的消息 但出于我自己的好奇心 我想知道我的代码是否可以缩短并且仍然有效 我尝试了 signal 而不是 sigaction 但我听说 sigaction 比 signal 更受青睐 此外 此任
  • Visual Studio 2015 C# 找不到参考

    我在使用 Visual Studio 2015 和 C 时遇到了问题 在同一解决方案中添加对其他项目的引用时 Visual Studio 找不到所有类 例如 我创建了一个单元测试项目 我添加了对我创建的通信项目的引用 库中有 10 个类 但
  • ASP.NET 数据集 getdataBy 无法启用约束。一行或多行包含违反非空、唯一或外键约束的值

    你好 我有一个非常简单的网络表单 我在此表单上有一个按钮和一个网格视图 以及一个包含链接表 bill docket docket bill 等的数据集 在按钮上单击我使用以下代码 protected void button click ob
  • 是否有稳定的 ASP.NET 博客控件(设计用于集成到现有站点中)? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我看到了 dotnetblogengine net 并从论坛帖子中得到的印象是 将其集成到现有网站中并
  • 为什么Windsor只能拦截虚方法或接口方法?

    我正在阅读文档 发现如果不使用接口 那么 Windsor 只能拦截虚拟方法 这是 Windsor 的限制还是 C 语言的限制 我正在寻找深入的答案 C 语言在这里完全无关 问题是拦截在运行时级别如何工作 一种技术是从类继承 实现接口并将其用
  • 在 C++ 中初始化指针

    可以在声明时将指针分配给值吗 像这样的东西 int p 1000 是的 您可以在声明时初始化指向值的指针 但是您不能这样做 int p 1000 是个地址运算符 并且您不能将其应用于常量 尽管如果可以 那会很有趣 尝试使用另一个变量 int
  • Ajax 函数在重定向后不保存滚动位置

    正如标题所述 我编写了一个 ajax 函数 该函数应该滚动到用户在重定向之前所在的位置 我写了一个alert对于测试场景 它确实触发了 但滚动不断回到顶部 我在这里做错了什么 JavaScript ajax type GET url Adm
  • C++ 中类型信息何时向后流动?

    我刚刚看了 Stephan T Lavavej 的演讲CppCon 2018关于 类模板参数推导 在哪里某个点 https youtu be H ut6j1BYU t 941他顺便说 在 C 中 类型信息几乎永远不会向后流动 我不得不说 几
  • 如何将对 System.Data.DataSetExtensions 的引用添加到网站 ascx.cs 文件?

    我们正在处理一个网站项目并尝试参考System Data DataSetExtensions 使用 Web 应用程序会更好 不过 技术主管有她的理由 这是我们尝试过的 找到装配路径 打开 Visual Studio 命令提示符并运行sn e
  • Jquery Ajax 调用返回 403 状态

    我有一个 jquery Ajax 调用来实现会话的 keepalive 这个 keepAlive 方法将每 20 分钟调用一次 function keepAlive ajax type POST url KeepAliveDummy asp
  • 验证域用户凭据

    我需要一种方法来验证 Windows 上本机 C 的用户 密码对 输入的是用户名和密码 用户可以是 DOMAIN user 格式 基本上我需要编写一个函数 如果用户 密码是有效的本地帐户 则返回 true 第1部分 如果用户 密码在给定的域
  • 如何明智地解释这个编译器警告?

    当我执行这段代码时question https stackoverflow com a 51056490 2411320 我收到这个警告 warning format d expects argument of type int but a
  • 更改成员资格、角色等的默认连接字符串

    默认情况下 我的网络应用程序似乎正在使用LocalSqlServer作为用于任何应用程序服务 例如成员资格 角色 身份验证 等 的连接字符串 有什么方法可以更改默认连接字符串应该是什么 默认值是 LocalSqlServer 似乎很随意 我
  • C 中函数“fgets”的参数太少

    每当我编译这个错误时 我都会收到该错误 但我不知道为什么 我直接从书上抄袭这个 有人可以帮忙吗 include
  • 不兼容的指针到字符转换

    我正在编写一个程序 将卡片值写入 52 个点字符的多维数组中 该程序是一个测试数组 稍后我将其作为函数写入主程序中 在程序中 我通过以下方式初始化 for 循环计数0通过51 我用一个switch语句调制13将卡牌值分配给数组点 但是 我收
  • 您的 C++ 程序中是否仍然存在内存分配失败问题 [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我正在为公司写一些指导方针 我需要回答一些棘手的问题 这一项是相当困难的 解决方案可以是 根本不跟踪 确保使用 new 分配对象 这会在分配失败
  • 在标准 C 中将 int 转换为 string

    我是 C 新手 我正在寻找一个可以调用函数进行转换的示例int串起来 我发现itoa但这不是标准 C 的一部分 我还发现sprintf str d aInt 但问题是我不知道所需的 str 的大小 因此 我如何传递输出字符串的正确大小 有多
  • 频繁插入已排序的集合

    我已经对集合 列表 进行了排序 并且我需要始终保持其排序 我目前在我的集合上使用 List BinarySearch 然后在正确的位置插入元素 我也尝试过在每次插入后对列表进行排序 但性能不可接受 有没有一种解决方案可以提供更好的性能 也许

随机推荐

  • 我无法让基本的 bxslider 工作

    好吧 所以别杀我 我是 jquery 和 bxsliders 的新手 但我即将把整个事情押下去 需要一个救世主 我认为我的所有文件都在正确的位置 我只是无法弄清楚这一点 简单的问题 尝试让滑块工作
  • 如果存在混合类型数组,如何为 IN 子句准备语句?

    我正在尝试为 IN 子句编写准备好的语句 其中数组是混合数组 我能够为 call user func array 构建数组 但我无法准备语句 没有显示输出 这是我的 php 代码 search1 array pune india 2014
  • 如何选择所有未分配给 EC2 实例的弹性 IP?

    我正在尝试获取当前未分配给实例的所有弹性 IP 使用以下命令可以轻松获取所有弹性 IP aws ec2 describe addresses 从这里 可以很容易地过滤掉任何没有的结果 AssociationId 但是 我不确定如何使用 qu
  • Interface Builder 不断重置我的自定义 UITableViewCell 的宽度

    我正在使用 Interface Builder 设计自定义 UITableViewCell对于 iPad 应用程序 我有一个专用的 XIB 文件 其中有一个 UITableViewCell 作为其根视图 我可以将 UITableViewCe
  • 根据外键字段在 Django 管理中过滤 list_filter

    我想通过外键指向的表中的字段来过滤我的 list filters 之一 我的模型 class Organisation models Model name models CharField COMPANY COMPANY CHARITY C
  • jQuery 延迟 ajax 缓存

    我读到了最上面的答案这个问题 https stackoverflow com questions 4869609 how can jquery deferred be used关于使用jQuery 延迟 http api jquery co
  • TFS 构建 PowerShell 步骤中的 Robocopy 报告失败但没有错误

    我的 powershell 脚本运行时日志文件中没有报告错误 但 TFS 2015 构建步骤报告错误 我需要执行特殊回电吗 这是一种新的样式构建 而不是基于 XAML 的构建 该脚本没有什么特别的 它调用 robocopy 并且成功发生 这
  • 默认情况下启用 WIX 的 MSI 日志记录

    我目前正在为我的软件编写安装程序 并且真的很想记录安装 我正在使用维克斯 但是 我见过记录安装的唯一方法是更改 reg 作为全局设置 并使用 l v 或类似的东西将其添加为命令行中的命令 我想做的是 安装程序运行后立即记录该安装程序 而不修
  • Werkzeug 引发 BrokenFilesystemWarning

    当我将表单数据发送到 Flask 应用程序时 出现以下错误 它说它将使用 UTF 8 编码 但区域设置已经是 UTF 8 这个错误是什么意思 home virtualenvs project local lib python2 7 site
  • While循环:UnboundLocalError:赋值前引用的局部变量

    我正在使用 python 3 5 因此 我尝试创建一个函数 将 x 和 y 作为正浮点输入 然后计算并返回 R x N y 其中 N 是最大整数 因此 x gt N y 我做了这个功能 def floatme x y N 1 while x
  • 将类型结构的通用列表绑定到中继器

    我在尝试将通用列表绑定到中继器时遇到了一些问题 泛型列表中使用的类型实际上是一个结构体 我在下面构建了一个基本示例 struct Fruit public string FruitName public string Price strin
  • MySQL 崩溃(“某些指针可能无效并导致转储中止”)

    我有一个名为 tweets 的 5GB MySQL 数据库 我需要从中访问 searchresults 表 但是 当我对其执行查询或创建转储时 MySQL 服务器 在 Windows 10 上运行 始终崩溃 并在同一行出现相同的错误 例如
  • Hyperledger Fabric 中的对等通道创建失败

    我正在尝试与一个订购者和 2 个对等方建立一个示例超级账本结构环境 我没有使用 docker 方法 而是运行实际的可执行文件本身 Orderer 和 2 个对等节点已成功启动 但是 通道创建失败并出现以下错误 任何帮助将不胜感激 订购者窗口
  • 比较 Cloud Functions 中的两个 Firestore 时间戳

    我正在 Firestore 中编写更新函数 我想比较两个Timestamp 我尝试了多种方法但没有成功 你能指出我比较两个的正确方法吗Timestamp在消防库里 exports updateFunction functions fires
  • Java监听端口

    我们想要捕获通过端口 7777 到达系统的数据 public static void main String args try final ServerSocket serverSocket new ServerSocket 7777 ne
  • 在 F# 中将字符串相乘

    我有一个问题我不太确定 我的问题如下 let myFunc text string times int 我想要这个函数做的是将字符串放在一起的次数与指定的次数相同times范围 if input check 3我想要输出字符串 check
  • 如何生成x的前20次方?

    所以 我有 X 一个 300 1 向量 我想要 1 X X X X X X X X X 300 20 矩阵 我该怎么做 X 2 1 X X X X X X ans 2 4 8 1 1 1 这可行 但我无法面对将整个内容打出来 我肯定不需要写
  • Jackson 2.2.3 中属性的 getter 定义相互冲突

    为了简单起见 这里是一个简单的类 class GetterMethodsObject int id 10 public int getId return id JsonIgnore public boolean isId return tr
  • 使用相互或循环(循环)导入时会发生什么?

    在 Python 中 当两个模块尝试执行操作时会发生什么import彼此 更一般地说 如果多个模块尝试import在一个循环中 See also What can I do about ImportError Cannot import n
  • LINQ to Entities 查询不支持转换为十进制

    我有一个数据库表事务 transactionID LocalAmount 其中 Localmount 属性的数据类型是float 在用户界面上我试图返回SUM按钮单击事件中一行中的列 Localamount 我用过decimal代替floa