2017-11-09 10 views
0

C#のMongoDbにオブジェクトを挿入する際に問題があります。 、私は私のコレクションをチェックインするとMongoDbドライバがオブジェクト全体を挿入していません

enter image description here

Statusオブジェクトは常に不足している:私は挿入しようとしているオブジェクトが、ちょうどこのようなものです

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

:私のコードは、ちょうどこのようなものです:

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; 
    } 
} 

誰かがここにいれば何のヒントを持っていますか?

ありがとうございました!

+0

'LogRecord'クラスの定義を表示できますか? –

+0

あなたのQueryDetailsRecordにいくつかの属性が適用されているか、シリアライザを設定してフィールドが無視されていると思います。またはStatusRecordは構造体です。 [ask]を読んで関連するすべてのコードを表示してください。 – CodeCaster

+0

@SergeyBerezovskiyオブジェクトで更新=) – Crasher

答えて

1

数日前に同じ問題が発生しました。あなたの「ステータス」辞書に定義されたプロパティ「コード」と「メッセージは」方法「InsertOneAsyncは」彼らを「見る」ことができないこのようプライベートであるため、 は、多分それは起こっています。

公共として「コード」と「メッセージ」を定義し、それが動作するかどうかを確認してください。

+0

完璧!ありがとう兄貴! – Crasher

関連する問題