gpt4 book ai didi

c# - MongoDb 驱动程序未插入整个对象

转载 作者:太空宇宙 更新时间:2023-11-03 22:51:22 25 4
gpt4 key购买 nike

我在用 C# 将对象插入 MongoDb 时遇到了一些问题。我的代码是这样的:

_db.GetCollection<LogRecord> (collectionName).InsertOneAsync (log);

我要插入的对象是这样的:

enter image description here

当我检入我的收藏时,Status 对象总是丢失:

My mongoDb object

我的目标:

public class LogRecord
{
public Dictionary<string, QueryDetailsRecord> QueryDetails { get; set; }
}

public class QueryDetailsRecord
{
public double ElapsedTime { get; set; }
public bool InfoFound { get; set; }

// Cache vars
public int CacheValidDays { get; set; }
public bool CacheEnabled { get; set; }
public bool CacheUsed { get; set; }

// Errors codes
public StatusRecord Status { get; set; }
public string ExceptionMessage { get; set; }

/// <summary>
/// Constructor
/// </summary>
public QueryDetailsRecord() {}

/// <summary>
/// Constructor
/// </summary>
/// <param name="elapsedTime">Elapsed time</param>
/// <param name="status">Status object</param>
/// <param name="exceptionMessage">Error message</param>
public QueryDetailsRecord (double elapsedTime, StatusRecord status, string exceptionMessage)
{
ElapsedTime = elapsedTime;
Status = status;
ExceptionMessage = exceptionMessage;
}
}

public class StatusRecord
{
private int _code = -1;
private string _msg = null;

public int Code
{
get { return _code; }
}

public string Message
{
get { return _msg; }
}

/// <summary>
/// Constructor
/// </summary>
/// <param name="code">Status code</param>
/// <param name="msg">Status message</param>
public StatusRecord (int code, string msg)
{
_code = code;
_msg = msg;
}
}

有人知道这里发生了什么吗?

谢谢!

最佳答案

几天前我遇到了同样的问题。可能是因为在您的“Status”字典中定义的属性“code”和“message”是私有(private)的,这样方法“InsertOneAsync ”无法“看到”它们。

尝试将“code”和“message”定义为public,看看是否可行。

关于c# - MongoDb 驱动程序未插入整个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47202996/

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