gpt4 book ai didi

c# - 在 C# 中运行 Web 服务时 mongodb 数据丢失

转载 作者:行者123 更新时间:2023-11-30 19:57:24 25 4
gpt4 key购买 nike

我有一个实体类

public class City
{
[BsonId]
public string id { get; set; }
public int value { get; set; }
}

我创建了一个 web 服务,并且有一个 webmethod 作为

[WebMethod]
public List<City> linQuery()
{
MongoConn dao = new MongoConn();
MongoServer mongo = dao.getConnection();
List<City> list = new List<City>();

string dbName = dao.dbName();
var db = mongo.GetDatabase(dbName);

Console.WriteLine(db);
using (mongo.RequestStart(db))
{
var collection = db.GetCollection<City>("cityMap");
IQueryable<City> cities = collection.AsQueryable().Where(c => c.value > 1200);
foreach (City city in cities)
list.Add(city);
return list;
}
}

当我运行该服务时,出现错误:

System.IO.FileFormatException: An error occurred while deserializing the value property of class WebService1.City: Truncation resulted in data loss. ---> MongoDB.Bson.TruncationException: Truncation resulted in data loss.

我该如何解决这个问题?感谢您的帮助。

最佳答案

您通常不希望您的模型知道或关心它是如何存储的,因此用 MongoDB.Bson 属性来填充它并不理想。您可以使用此配置来配置 MongoDB.Driver 应如何读取和存储小数。

BsonSerializer.RegisterSerializer(
typeof(decimal),
new DecimalSerializer(BsonType.Double,
new RepresentationConverter(
true, // allow overflow, return decimal.MinValue or decimal.MaxValue instead
true //allow truncation
))
);

source

关于c# - 在 C# 中运行 Web 服务时 mongodb 数据丢失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30160970/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com