我在C#中将对象插入MongoDb时遇到了一些麻烦。我的代码是这样的:
_db.GetCollection<LogRecord> (collectionName).InsertOneAsync (log);
我想插入的对象就像这样:
当我签入我的收藏夹时,状态对象总是丢失:
我的对象:
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;
}
}
有没有人知道这里有什么问题?
谢谢!
答案 0 :(得分:2)
几天前我也有同样的问题。 也许它正在发生,因为属性&#34; 代码&#34;和&#34; 消息&#34;在您的&#34; 状态&#34;字典是私有的,这种方法&#34; InsertOneAsync&#34;不能&#34;看&#34;它们。
尝试定义&#34; 代码&#34;和&#34; 消息&#34;作为公开,看看它是否有效。