Mongo连接异常处理

时间:2014-09-03 09:14:40

标签: exception-handling database-connection mongodb-.net-driver

我正在尝试对以下代码进行一些异常处理。基本上我想要一个MessageBox.Show(“ErrorMessage”)来显示是否无法建立与服务器的连接。

public List<MongoDBModel> MongoDBModel
        {
            get
            {
                string connectionString = "mongodb://127.0.0.1";
                var mongoClient = new MongoClient(connectionString);
                var mongoServer = mongoClient.GetServer();
                var databaseName = "TestPointToPoint";
                var db = mongoServer.GetDatabase(databaseName);
                var mongodb = db.GetCollection<MongoDBModel>("OCS.MeterEntity");
                var mongodbQuery = Query<MongoDBModel>.EQ(x => x._id, MeterUID);
                List<MongoDBModel> Cursor = mongodb.FindAs<MongoDBModel>(mongodbQuery).ToList();
                return Cursor;

            }
        }

我已经尝试过

    if (mongoServer.State == MongoServerState.Connected)
    {
              var databaseName = "TestPointToPoint";
              var db = mongoServer.GetDatabase(databaseName);
              var mongodb = db.GetCollection<MongoDBModel>("OCS.MeterEntity");
              var mongodbQuery = Query<MongoDBModel>.EQ(x => x._id, MeterUID);
              List<MongoDBModel> Cursor = mongodb.FindAs<MongoDBModel>(mongodbQuery).ToList();
              return Cursor;
    }
    else
    {
              MessageBox.Show("Connection to MongoDB lost");
              return null;
    }

但由于mongoServer的状态首先在查询中更改为已连接,因此无效。

我该怎么做才能让它发挥作用?

1 个答案:

答案 0 :(得分:1)

我现在感到愚蠢:P 使用简单的try-catch工作。

public List<MongoDBModel> MongoDBModel
    {
        get
        {
            string connectionString = "mongodb://127.0.0.1";
            var mongoClient = new MongoClient(connectionString);
            var mongoServer = mongoClient.GetServer();
            var databaseName = "TestPointToPoint";
            var db = mongoServer.GetDatabase(databaseName);
            var mongodb = db.GetCollection<MongoDBModel>("OCS.MeterEntity");
            try
            {
                var mongodbQuery = Query<MongoDBModel>.EQ(x => x._id, MeterUID);
                List<MongoDBModel> Cursor = mongodb.FindAs<MongoDBModel>(mongodbQuery).ToList();
                return Cursor;
            }
            catch (MongoConnectionException e)
            {
                MessageBox.Show(e.Message);
                return null;
            }
        }
    }

抱歉你的麻烦。

相关问题