2017-03-21 18 views
0

私のASP.NET Core WebアプリケーションをMongoDBに接続したいが問題がある。MongoDb _idをプロパティにバインドする方法は?

私はまた私のデータベースに最初にデータを追加する方法持っている車

[BsonRepresentation(BsonType.ObjectId)] 
public ObjectId ID { get; set; } 
public string Company { get; set; } 
public string Model { get; set; } 
public string Color { get; set; } 

[Range(1, 100)] 
[DataType(DataType.Currency)] 
public double Price { get; set; } 

の小さなモデルがあります: (将来的に私は、コントローラにメソッドを追加します)

public async Task AddCar() 
     { 
      var mycar = new Car 
      { 
       Color = "red", 
       Company = "my", 
       Model = "x3", 
       Price = 33 
      }; 
      var collection = database.GetCollection<Car>("car"); 
      await collection.InsertOneAsync(mycar); 
     } 

すべてがうまく見えますが、自分のプログラムを実行するとDBでこのデータが得られます document in my db

アライが_idのプロパティがIDのプロパティと一致しました

これを行うには何が必要ですか?

+1

あなたのIDフィールドの名前を_id(名前は 'public ObjectId _id')に変更しましたか? – RizJa

+0

私のフィールドの名前を '_id'に変更すれば動作します。 しかし、私はmongo '_id'と私のプロパティをバインドする方法を知りたいです – AlexCOM

+1

' [BsonId] '属性で修飾してみてください。 – RizJa

答えて

0

[BsonRepresentation]の前に[BsonId]デコレータを追加して、MongoDBに自動生成されたドキュメントIDを参照していることを伝える必要があります。今のところMongoDBはIDをドキュメント作成中に追加し、ObjectIdとして表される別のID(あなたのもの)を追加しますが、実際にObjectIdの値を生成していないので、ゼロの束です。

関連する問題