2016-11-28 7 views
0

私はMongoDBが新しく、チュートリアルの後、SQL Serverデータベースからデータを読み込み、C#とEntity Frameworkを使用してMongoDBでデータを逆引きしようとしています。MongoDB用の新しいBsonDocumentを作成するBSONエラー

私はMongoDBのサイトにこのコードを見つけました:

async static void addDoc() 
{ 
    var document = new BsonDocument 
    { 
     { "address" , new BsonDocument 
      { 
       { "street", "2 Avenue" }, 
       { "zipcode", "10075" }, 
       { "building", "1480" }, 
       { "coord", new BsonArray { 73.9557413, 40.7720266 } } 
      } 
     }, 
     { "borough", "Manhattan" }, 
     { "cuisine", "Italian" }, 
     { "grades", new BsonArray 
      { 
       new BsonDocument 
       { 
        { "date", new DateTime(2014, 10, 1, 0, 0, 0, DateTimeKind.Utc) }, 
        { "grade", "A" }, 
        { "score", 11 } 
       }, 
       new BsonDocument 
       { 
        { "date", new DateTime(2014, 1, 6, 0, 0, 0, DateTimeKind.Utc) }, 
        { "grade", "B" }, 
        { "score", 17 } 
       } 
      } 
     }, 
     { "name", "Vella" }, 
     { "restaurant_id", "41704620" } 
    }; 

    var collection = _database.GetCollection<BsonDocument>("restaurants"); 
    await collection.InsertOneAsync(document); 
} 

私は期待通りに動作します。だから、私はこれを作った:

using (var db = new Entities()) 
{ 
    foreach (var trans in db.TRANSACTIONS) 
    { 
     try 
     { 
      var document = new BsonDocument 
      { 
       { "ID", erog.ID.ToBson() }, 
       { "CUSTOMER" , new BsonDocument 
        { 
         { "CSTID", trans.CUSTOMERS.CSTID.ToBson() }, 
         { "NAME", trans.CUSTOMERS.NAME.ToBson()}, 
         { "CITY", trans.CUSTOMERS.CITY.ToBson() }, 
         { "ZIP", trans.CUSTOMERS.ZIP.ToBson() }, 
         { "STATE", trans.CUSTOMERS.STATE.ToBson() }, 
        } 
       }, 
       { "TRANSACTIONNUMBER", trans.TRANSACTIONNUMBER.ToBson() }, 
       { "TIMESTAMP", erog.TIMESTAMP.ToBson() }, 
       { "AMOUNT", erog.AMOUNT.ToBson() }, 
       { "PAYMENT", erog.PAYMENT.ToBson() }, 
      }; 

      var collection = _database.GetCollection<BsonDocument>("transactions"); 
      collection.InsertOne(document); 
     } 
     catch (Exception e) 
     { 
      Console.WriteLine(e); 
     } 
    } 
} 

私はこのコードを実行しようとすると=新しいBsonDocument {....}VARドキュメントを実行するとき、私はエラーを取得します。エラーは "bson文書"のルートレベルに文字列値を書き込むことはできません。だからわかるように、.ToBson()を私の値の最後に置こうとしましたが、結果は変わりません。

唯一の違いは、値が2つの引用符の間にある文字列ではありませんが、それは私のテーブルの実際の値です。

&私の目標に到達するには、上記のコードからMongoDBデータベースに文書を挿入するにはどうすればよいですか?

答えて

0

Ok、ダム質問、ダム解決策。

をBson()に置き換えてtoString()と置き換えてください。 :)

関連する問題