私はいくつかの人からの純粋なデータベースの例を続けました。どちらも私のために動かないようです。私がデータベースにいくつかのものを残しておくと、デバッグ時にすべてが明瞭に(私の電話機で、エミュレータではなく)使用されて永続化されます。しかし、私のアプリケーションを再起動すると、データベースは空になります。他の誰かが同じ問題を経験していますか?あるいは、誰かが完全な実例を持っていますか?私は私のapp.csでスターリングデータベースがWindows電話に残らない
コード
public static ISterlingDatabaseInstance Database { get; private set; }
private static SterlingEngine _engine;
private static SterlingDefaultLogger _logger;
private void Application_Launching(object sender, LaunchingEventArgs e)
{
ActivateEngine();
}
// Code to execute when the application is activated (brought to foreground)
// This code will not execute when the application is first launched
private void Application_Activated(object sender, ActivatedEventArgs e)
{
ActivateEngine();
}
// Code to execute when the application is deactivated (sent to background)
// This code will not execute when the application is closing
private void Application_Deactivated(object sender, DeactivatedEventArgs e)
{
DeactivateEngine();
}
// Code to execute when the application is closing (eg, user hit Back)
// This code will not execute when the application is deactivated
private void Application_Closing(object sender, ClosingEventArgs e)
{
DeactivateEngine();
}
private void ActivateEngine()
{
_engine = new SterlingEngine();
_logger = new SterlingDefaultLogger(SterlingLogLevel.Information);
_engine.Activate();
Database = _engine.SterlingDatabase.RegisterDatabase<SokobanDb>();
}
private void DeactivateEngine()
{
_logger.Detach();
_engine.Dispose();
Database = null;
_engine = null;
}
コード私のViewModel
に...限り、私は私の状態は作品ロード私のアプリを再起動していないよう...私のシリアル化および保存作品を知っていますpublic void LoadState(int level)
{
var levelState = App.Database.Load<LevelState>(level);
if (levelState != null)
{
//TODO: check if game started, then create board from boardstring property else create new board
//Labyrint = new Labyrint(Factory.CreateBoard());
NewGame(level);
}
else
{
NewGame(level);
}
}
public void SaveState()
{
var levelState = new LevelState { LevelId = _level, Moves = Labyrint.Moves, Board = Labyrint.ToString() };
App.Database.Save(levelState);
App.Database.Flush(); //Required to clean indexes etc.
}
マンゴー以降、組み込みのデータベースが存在することはご存知ですか? –
はい、私は認識していますが、SQL CEのようなリレーショナルデータベースは必要ありません –