C# 设置域类MongoDB/C的正确方法是什么#

C# 设置域类MongoDB/C的正确方法是什么#,c#,wpf,mongodb,C#,Wpf,Mongodb,我目前正在制作一个WPF应用程序,现在准备添加一个mongo数据库,但是我似乎找不到最好的处理方法。现在我是这样做的: MongoManagment.cs: namespace MoneyManagment { class MongoManagment { public void Connect() { String connectionString = "mongodb://localhost";

我目前正在制作一个WPF应用程序,现在准备添加一个mongo数据库,但是我似乎找不到最好的处理方法。现在我是这样做的:

MongoManagment.cs:

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
        }