2012-02-17 6 views
0

После каждого первого запуска моего приложения я загружаю все необходимые справочные данные (текстовый файл (формат csv) размером 1 МБ). Эти данные содержат около 30000 строк, а каждая строка - это запись данных с именем, широтой, долготой и высотой.Как сохранить справочные данные

Самый эффективный способ сохранить эти данные? Я попытался сохранить список из них в IsolatedStorageSettings. Но это самый худший подход.

Другой способ - хранить текстовый файл в каталоге IsolStorageFile и при каждом запуске приложения загружать файл и анализировать его в свой список.

Самая неформатная часть - это файл. Поэтому я предполагаю, что использование базы данных, такой как sqlite, имеет ту же проблему, не так ли?

Как вы относитесь к этой проблеме?

С уважением, Дэнни

ответ

1

я сделал что-то подобное в приложении WherOnEarth. У нас есть база данных SQLCE, в которой хранятся данные, а затем загружаются вещи, которые находятся рядом.

Справочная литература: http://www.silverlightshow.net/items/Windows-Phone-7.1-Local-SQL-Database.aspx & http://www.jeffblankenburg.com/2011/11/30/31-days-of-mango-day-30-local-database/

У меня есть SDF файл, который я гружу с приложением, класс данных показано ниже

[Table] 
    public class PointData : IPositionElement, INotifyPropertyChanged 
    { 
      [Column] 
      public string Description { get; set; } 

      [Column] 
      public double Latitude { get; set; } 

      [Column] 
      public double Longitude { get; set; } 

Тогда я прочитал пункты, которые рядом я получаю их следующие:

(from ht in _context.Points 
     where ht.Latitude >= bottomLeft.Latitude && ht.Latitude <= topRight.Latitude && 
     ht.Longitude >= bottomLeft.Longitude && ht.Longitude <= topRight.Longitude 
     select ht 
     ).ToArray(); 

Этот подход был достаточно быстрым для меня (т.е. потребовалось меньше времени, чтобы получить элементы из файла sdf, чем это было, чтобы разместить их на экране, а также все другие связанные с ним математику. В доверенности я не пытался получить 300000 предметов из БД. Было больше оптимизаций, которые я мог бы сделать в отношении индексирования и тому подобного, но, как я уже сказал, он был достаточно быстрым на данный момент, поэтому я позже перейду к нему.

Смежные вопросы