C# windows phone数据库-访问它的最佳方式

C# windows phone数据库-访问它的最佳方式,c#,windows-phone-8,C#,Windows Phone 8,我的windows phone 8应用程序中有数据库。我想知道,访问它的“最佳”实践应该是什么 在上一个应用程序中,我使用静态方法创建了一个名为“AccessingDatabase”的类,当我需要使用它时,我只调用了类似于AccessingDatabase.savePlayer(player)的方法。这样做的好处是,可以轻松访问和简单处理更多请求(我有更多线程访问数据库): public static AutoResetEvent OperationOnDatabase = new AutoRe

我的windows phone 8应用程序中有数据库。我想知道,访问它的“最佳”实践应该是什么

在上一个应用程序中,我使用静态方法创建了一个名为“AccessingDatabase”的类,当我需要使用它时,我只调用了类似于
AccessingDatabase.savePlayer(player)
的方法。这样做的好处是,可以轻松访问和简单处理更多请求(我有更多线程访问数据库):

public static AutoResetEvent OperationOnDatabase = new AutoResetEvent(true);

public static RefreshMessages()
        {
            try
            {
                OperationOnDatabase.WaitOne();
                //dosomething
            }
            finally
            {
                OperationOnDatabase.Set();
            }
        }
有更好的办法吗

例如,我可以将数据库上下文保存在
MainViewModel
中,并使用

ServiceLocator.Current.GetInstance<MainViewModel>().MyDatabase
ServiceLocator.Current.GetInstance().MyDatabase

想法?

好的,更好的解决方案是允许通过正式的存储库访问数据库,并使用DI框架将存储库注入需要的代码中。通过这种方式,您可以轻松地进行协调,同时不会像使用静态方法时那样具有硬依赖性,这将极大地提高使用存储库的类的可测试性

如果DI对您来说太重,只需手动将存储库注入ctor(尽管这会导致某些地方的可测试性降低)