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