MongoDB C# 增删改查
MongoDB C# CRUD
我最近学习了 MongoDB,我想在 C# 中尝试一下。我已经设法使 Update 和 Delete 函数起作用。我在使用 Create 函数时遇到问题。
所以,我有三个 classes 命名为 Program、Repository、User.
在存储库class中,我有:
public async Task CreateUser(ConsoleApplication1.Models.User user)
{
await _collection.InsertOneAsync(user);
}
在程序中,我有以下代码:
ConsoleApplication1.Models.User new_user; // Declaring Member of User class
string newUserId = Console.ReadLine(); // Taking Input For ID
new_user.id = new ObjectId(newUserId); // ID
new_user.First_Name = Console.ReadLine(); // First Name
new_user.Last_Name = Console.ReadLine(); // Last Name
new_user.Age = Console.ReadLine(); // Age
new_user.Address = Console.ReadLine(); // Address
r1.CreateUser(new_user);
因为在 Repository class 中,CreateUser 方法只有一个参数是 User class 以及我在 Program [=53= 中声明 new_user 的方式], 它没有初始化,这就是为什么我在:
上出错的原因
new_user.id = Console.ReadLine();
我该如何解决这个问题?
在使用 class 的实例成员之前,您必须创建 class 的实例:
ConsoleApplication1.Models.User new_user = new ConsoleApplication1.Models.User();
同样适用于您的存储库 - 您必须创建存储库实例并将其分配给变量 r1
。
延伸阅读 Static vs Instance
还有一个提示 - 您可以使用 using
指令来避免每次都使用完整的类型名称。
我最近学习了 MongoDB,我想在 C# 中尝试一下。我已经设法使 Update 和 Delete 函数起作用。我在使用 Create 函数时遇到问题。
所以,我有三个 classes 命名为 Program、Repository、User.
在存储库class中,我有:
public async Task CreateUser(ConsoleApplication1.Models.User user)
{
await _collection.InsertOneAsync(user);
}
在程序中,我有以下代码:
ConsoleApplication1.Models.User new_user; // Declaring Member of User class
string newUserId = Console.ReadLine(); // Taking Input For ID
new_user.id = new ObjectId(newUserId); // ID
new_user.First_Name = Console.ReadLine(); // First Name
new_user.Last_Name = Console.ReadLine(); // Last Name
new_user.Age = Console.ReadLine(); // Age
new_user.Address = Console.ReadLine(); // Address
r1.CreateUser(new_user);
因为在 Repository class 中,CreateUser 方法只有一个参数是 User class 以及我在 Program [=53= 中声明 new_user 的方式], 它没有初始化,这就是为什么我在:
上出错的原因new_user.id = Console.ReadLine();
我该如何解决这个问题?
在使用 class 的实例成员之前,您必须创建 class 的实例:
ConsoleApplication1.Models.User new_user = new ConsoleApplication1.Models.User();
同样适用于您的存储库 - 您必须创建存储库实例并将其分配给变量 r1
。
延伸阅读 Static vs Instance
还有一个提示 - 您可以使用 using
指令来避免每次都使用完整的类型名称。