C# 设置域类MongoDB/C的正确方法是什么#
我目前正在制作一个WPF应用程序,现在准备添加一个mongo数据库,但是我似乎找不到最好的处理方法。现在我是这样做的: MongoManagment.cs:C# 设置域类MongoDB/C的正确方法是什么#,c#,wpf,mongodb,C#,Wpf,Mongodb,我目前正在制作一个WPF应用程序,现在准备添加一个mongo数据库,但是我似乎找不到最好的处理方法。现在我是这样做的: MongoManagment.cs: namespace MoneyManagment { class MongoManagment { public void Connect() { String connectionString = "mongodb://localhost";
namespace MoneyManagment
{
class MongoManagment
{
public void Connect()
{
String connectionString = "mongodb://localhost";
MongoClient client = new MongoClient(connectionString);
MongoServer server = client.GetServer();
MongoDatabase database = server.GetDatabase("MoneyManagment"); //Connect to the database
MongoCollection<Users> _users = database.GetCollection<Users>("user"); // "user" is the collection name, "Users" is the domain class
}
}
public class Users
{
public ObjectId _id { get; set; }
public string username { get; set; }
}
}
我在这里得到了一个错误,VS无法访问用户,这在某种程度上是有道理的,问题是,我尝试了很多不同的方法来访问它,但它不起作用,这让我相信有更好的方法来实现这一点。有什么想法吗?首先,您需要访问的变量公开可见
public class MongoManagment
{
public MongoCollection<Users> MongoUsers {get; set;}
public void Connect()
{
....
this.MongoUsers = database.GetCollection<Users>("user");
}
注意这是一个非常简单的示例,您可能不希望每个窗口都有一份
MongoManagment
等。您仍然需要花一点时间探索变量生命周期、范围等概念。您实际在哪里实例化了\u用户
变量?通常以u开头的变量表示它是私有的,整个应用程序堆栈无法访问?无论哪种方式,示例中的main窗口
类都不包含对变量的任何引用。@AndrewCounts right,它不包含任何引用。我尝试过不同的方法来引用它,但没有一种有效,所以有没有比我尝试做的更好的方法呢?通常是怎么做的?我对c#和mongo还不熟悉……你的声明在c#术语中根本没有意义。您显示的是一个\u users
变量,该变量在MongoManagement
类的Connect
函数范围内声明,但试图从完全不同的类访问它。通读有关变量和范围的内容(旧文章,主要是VB,但概念是有效的)。
public class MongoManagment
{
public MongoCollection<Users> MongoUsers {get; set;}
public void Connect()
{
....
this.MongoUsers = database.GetCollection<Users>("user");
}
public MainWindow()
{
....
MongoManagement mm = new MongoManagement();
mm.Connect();
foreach (Users user in mm.MongoUsers.FindAll())
{
//do something with users data here
}