古い .Net API バージョン:
MongoClient client = new MongoClient();
var server = client.GetServer();
var db = server.GetDatabase("foo");
var collection = db.GetCollection<BsonDocument>("bar");
var document = new BsonDocument { { "_id", 1 }, { "x", 2 } };
collection.Save(document);
出来た。
新しい .Net Driver 2.0 を使用する場合:
var client = new MongoClient("mongodb://localhost:27017");
var database = client.GetDatabase("foo");
var collection = database.GetCollection<BsonDocument>("bar");
var document = new BsonDocument { { "_id", 1 }, { "x", 2 } };
await collection.InsertOneAsync(document);
エラー : 'await' 演算子は非同期メソッド内でのみ使用できます。このメソッドを「async」修飾子でマークし、戻り値の型を「Task」に変更することを検討してください。
参照 :
.Net Driver 2.0 を使用して新しいドキュメントを挿入する方法を知りたいです。ありがとう。
[更新 1] 実装してみました:
public class Repository
{
public static async Task Insert()
{
var client = new MongoClient("mongodb://localhost:27017");
var database = client.GetDatabase("foo");
var collection = database.GetCollection<BsonDocument>("bar");
var document = new BsonDocument { { "_id", 1 }, { "x", 2 } };
await collection.InsertOneAsync(document);
}
}
static void Main(string[] args)
{
Task tsk = Repository.Insert();
tsk.Wait();
Console.WriteLine("State: " + tsk.Status);
}
結果: アクティブ化を待っています。データベースで何も変更されていません。私を助けてください!
[アップデート2 (解決済み)] : tsk.Wait(); を追加 出来た !この投稿に感謝します:非同期タスクメソッドを同期的に実行するにはどうすればよいですか?