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

时间:2014-09-25 06:22:06

标签: c# windows-phone-8

我的Windows Phone 8应用程序中有数据库。我想知道,访问它的“最佳”做法应该是什么。

在上一个应用程序中,我使用了名为“AccessingDatabse”的静态方法,当我需要对它执行某些操作时,我只调用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

想法?

1 个答案:

答案 0 :(得分:1)

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

如果DI太重,只需手动将存储库注入ctor(虽然这会导致某些地方的可测试性降低)。