技术开发 频道

微软WP7本地数据库之Sterling编程技巧

  {

  
if (viewModel == null)

  viewModel
= new MainViewModel();

  return viewModel;

  }

  }

  
public static ISterlingDatabaseInstance Database

  {

  
get

  {

  return _database;

  }

  }

  
//

  注意,上面的全局静态属性Database的定义有助于在应用程序的各处引用这一数据库。此外,另一个全局静态属性ViewModel也起着类似的作用。

  其次,我们定义了两个辅助方法。第一个方法_ActivateEngine旨在当程序首次启动时或者当程序从墓碑(tombstone)事件中唤醒时激活数据库ContactsDatabase。第二个方法_DeactivateEngine用于当应用程序退出或进入到墓碑(tombstone)事件中时停用Sterling引擎。

  列表3:方法_ActivateEngine的关键代码部分

  private void _ActivateEngine()

  {

  _engine
= new SterlingEngine();

  _logger
= new SterlingDefaultLogger(SterlingLogLevel.Information);

  _engine.Activate();

  _database
= _engine.SterlingDatabase.RegisterDatabase();

  
//register triggers

  var maxIdx1
=

  _database.Query().Any() ?

  (from id in _database.Query()

  
select id.Key).Max() + 1 : 1;

  _database.RegisterTrigger(
new ContactsDatabase.GroupTrigger(maxIdx1));

  var maxIdx2
=

  _database.Query().Any() ?

  (from id in _database.Query()

  
select id.Key).Max() + 1 : 1;

  _database.RegisterTrigger(
new ContactsDatabase.ContactTrigger(maxIdx2));

  }

  
private void _DeactivateEngine()

  {

  _logger.Detach();

  _engine.Dispose();

  _database
= null;

  _engine
= null;

  }
0
相关文章