没有保存C#.NET核心数据的MongoDB.Driver

时间:2017-01-18 06:26:51

标签: c# mongodb connectivity

我正在努力将C#控制台应用程序与MongoDb连接起来。 MongoDb服务器启动并运行,因为我可以使用Mongobooster IDE和命令提示符。我已经为连接v2.4.1安装了最新的官方MongoDB.Driver,所以基本上我不能使用db.document.Save方法作为解决方案。在这个应用程序中,我使用下面的db.document.insert方法是代码已成功编译并执行但我的数据尚未存储在服务器上。我正在使用.NET Core,因此我不能使用旧版本的驱动程序,因为它们不受.NET Core支持。

学生模特

public class Students
{
  public ObjectId Id { get; set; }
  public string FirstName { get; set; }
  public string LastName { get; set; }
  public string City { get; set; }
  public string Age { get; set; }
}

这是我的Connection对象和Student对象

protected static IMongoClient _client;
protected static IMongoDatabase _database;

public static Students GetStudent()
{ 
    Console.WriteLine("Please enter student first name");
    string FNm = Console.ReadLine();

    Console.WriteLine("Please enter student last name");
    string LNm = Console.ReadLine();

    Console.WriteLine("Please enter student age");
    string StudentAge = Console.ReadLine();

    Console.WriteLine("Please enter city name");
    string StudentCity = Console.ReadLine();

    Students student = new Students()
    {
      FirstName = FNm,
      LastName = LNm,
      Age = StudentAge,
      City = StudentCity,
    };

    return student;
}

主要方法

_client = new MongoClient();
_database = _client.GetDatabase("School");
var _collection = _database.GetCollection<Students>("StudentDetails");

Console.WriteLine("Press select your option from the following\n1 - Insert\n2 - Update One Document\n3 - Delete\n4 - Read All");

string userSelection = Console.ReadLine();


switch (userSelection)
 { 
    case "1":
      _collection.InsertOne(GetStudent());
    break;

    case "2":

    break;
.....

2 个答案:

答案 0 :(得分:0)

你有任何类地图吗?我想它会映射你的

public ObjectId Id { get; set; }

到文件&#34; _id&#34;领域。 您没有为此字段指定值,请尝试:

Students student = new Students()
{
  Id = ObjectId.GenerateNewId(),
  FirstName = FNm,
  LastName = LNm,
  Age = StudentAge,
  City = StudentCity,
};

答案 1 :(得分:0)

在控制台窗口上,一旦我点击ctrl + z执行了它就停止执行服务器代码!