首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在mongodb .net核中使用分组时不获取十进制属性之和

在mongodb .net核中使用分组时不获取十进制属性之和
EN

Stack Overflow用户
提问于 2022-11-03 09:34:21
回答 1查看 38关注 0票数 0

我希望从所有文档中得到一个属性的和,但没有得到适当的值,因为属性数据类型是可空的十进制,当属性是整数时,适当的和正在得到。

代码语言:javascript
运行
复制
var data1 = mongoCollection.Group(e => e.ClientId,
                g => new
                {
                    Total1 = g.Sum(e => e.Abc.Val1),
                    Total2 = g.Sum(e => e.Abc.Val2),
                    Total3 = g.Sum(e => e.Abc.Val3),
                    Total4 = g.Sum(e => e.Abc.Val4),        
                }).ToList();

需要帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-11-04 13:19:40

当您从MongoDB核心驱动程序保存时,MongoDB将十进制值保存为字符串,这就是为什么和没有执行,因为MongoDB中的值是字符串类型。

您需要将[BsonRepresentation(BsonType.Decimal128)]属性添加到c#类的十进制属性中,以便MongoDB能够理解在保存数据期间这个值是十进制的。

或者,您可以在启动类中注册BsonSerializer,如下所示,它考虑类的所有十进制属性,以便将其保存为十进制。

代码语言:javascript
运行
复制
BsonSerializer.RegisterSerializer(typeof(decimal), new DecimalSerializer(BsonType.Decimal128));
BsonSerializer.RegisterSerializer(typeof(decimal?), new NullableSerializer<decimal>(new DecimalSerializer(BsonType.Decimal128)));
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74300803

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档