C# MongoDb驱动程序未插入整个对象
在C#中将对象插入MongoDb时遇到一些问题。我的代码如下所示:C# MongoDb驱动程序未插入整个对象,c#,.net,mongodb,C#,.net,Mongodb,在C#中将对象插入MongoDb时遇到一些问题。我的代码如下所示: _db.GetCollection<LogRecord> (collectionName).InsertOneAsync (log); \u db.GetCollection(collectionName).InsertOneAsync(log); 我尝试插入的对象如下所示: _db.GetCollection<LogRecord> (collectionName).InsertOneAsync (l
_db.GetCollection<LogRecord> (collectionName).InsertOneAsync (log);
\u db.GetCollection(collectionName).InsertOneAsync(log);
我尝试插入的对象如下所示:
_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;
}
}
公共类日志记录
{
公共字典查询详细信息{get;set;}
}
公共类QueryDetailsRecord
{
公共双ElapsedTime{get;set;}
公共bool InfoFound{get;set;}
//缓存变量
public int CacheValidDays{get;set;}
公共布尔缓存已启用{get;set;}
public bool CacheUsed{get;set;}
//错误代码
公共状态记录状态{get;set;}
公共字符串例外消息{get;set;}
///
///建造师
///
公共QueryDetailsRecord(){}
///
///建造师
///
///经过的时间
///状态对象
///错误消息
公共QueryDetailsRecord(双elapsedTime、状态记录状态、字符串例外消息)
{
ElapsedTime=ElapsedTime;
状态=状态;
ExceptionMessage=例外消息;
}
}
公共类状态记录
{
私有int_代码=-1;
私有字符串_msg=null;
公共整数码
{
获取{return\u code;}
}
公共字符串消息
{
获取{return\u msg;}
}
///
///建造师
///
///状态码
///状态消息
公共状态记录(整数代码、字符串消息)
{
_代码=代码;
_味精=味精;
}
}
有人知道这里发生了什么吗
谢谢大家! 几天前我也遇到了同样的问题。 这可能是因为在“状态”字典上定义的属性“代码”和“消息”是私有的,因此方法“InsertOneAsync”无法“查看”它们
尝试将“code”和“message”定义为public,看看它是否有效。能否显示
LogRecord
类的定义?我猜您的QueryDetailsRecord应用了一些属性,或者您配置了一些序列化程序,导致该字段被忽略。或者StatusRecord是一个结构。读取并显示所有相关代码。@SergeyBerezovskiy已更新为object=)@CodeCaster实际上没有应用任何属性。我更新了整个对象=),将进行一次摆动;是不是它不知道如何使用构造函数?并且更愿意使用属性。完美!谢谢兄弟!