Статьи

«База данных сначала» с SQLite в универсальном приложении с использованием SQLite Toolbox и SQLite-net

В этой записи блога я опишу, как использовать функцию обратного инжиниринга SQLite Toolbox для генерации кода для использования с базой кода sqlite-net в универсальном приложении. Универсальное приложение — это специальный шаблон решения, который позволяет вам совместно использовать код и ресурсы ресурса между приложением Windows Phone 8.1 и Windows Store 8.1, чтобы минимизировать дублирование кода и увеличить повторное использование кода, если ваше приложение предназначено для обеих этих платформ.

У моего коллеги из MVP Николо Карандини есть несколько отличных постов в блоге о том, как начать работу с SQLite в универсальном приложении. С тех пор как он опубликовал это, SDK расширения SQLite были обновлены и теперь доступны непосредственно в Extension Manager в Visual Studio 2013, поэтому перейдите и установите эти две загрузки — перейдите в раздел Инструменты, Расширения и обновления, выберите Онлайн и выполните поиск «sqlite». :

образ

Установите эти три расширения:
— SQLite для Windows Phone 8.1
— SQLite для среды выполнения Windows (Windows 8.1)
— SQL Server Compact / SQLite Toolbox

Два других расширения SQLite предназначены для версии Windows / Windows Phone 8.0. Обратите внимание, что для использования панели инструментов SQLite в настоящее время у вас должен быть установлен SQL Server Compact 4.0 или 3.5, в следующем выпуске это не потребуется . Теперь перезапустите Visual Studio.

Следуйте инструкциям в блоге Николо, пока у вас не будет двух файлов SQLite-net, доступных в .Shared «проекте»:

050814_2231_UniversalAp3 [1]

Вместо того, чтобы вводить классы таблиц вручную, набор инструментов SQLite может помочь вам сгенерировать необходимые классы для вас на основе существующего файла базы данных SQLite. Вы даже можете включить файл базы данных SQLite в свое приложение, например, если какая-либо из таблиц содержит справочные данные. Я опишу, как обрабатывать справочные данные в моем предыдущем сообщении в блоге здесь.

Обратите внимание, что классы sqlite-net — это не полноценный OR-M, а простой переводчик SQL в класс. Например, он не поддерживает отслеживание изменений, отношения (внешние ключи), единицу работы, первичные ключи из нескольких столбцов и т. Д. Эти функции будут присутствовать и доступны для универсальных приложений в новом выпуске Entity Framework, выходящем в начале 2015 года, EF7.

Откройте панель инструментов SQLite в обозревателе серверов или в меню «Сервис» и подключитесь к существующей базе данных SQLite. Обзор всех функций SQLite в панели инструментов см. В моем блоге здесь.

образ

Выберите общий проект в обозревателе решений, затем щелкните правой кнопкой мыши базу данных и выберите «Добавить sqlite-net Model.cs в текущий проект»

образ

Сгенерированный код (Model.cs) содержит класс SQLiteDb с методом для создания всех таблиц в базе данных (если вы просто хотите использовать существующий файл базы данных в качестве шаблона), а также определения классов для каждой таблицы в базе данных:

    public partial class Album
    {
        [PrimaryKey]
        [Unique(Name = "IPK_Album", Order = 0)]
        public Int64  AlbumId { get; set; }
        
        [MaxLength(160)]
        [NotNull]
        public String  Title { get; set; }
        
        [Indexed(Name = "IFK_AlbumArtistId", Order = 0)]
        [NotNull]
        public Int64  ArtistId { get; set; }
        
    }

Как видите, такие атрибуты, как MaxLength, Index и NotNull помогают определить таблицу.

Надеемся, что эта функция, экономящая время, и другие функции SQLite в панели инструментов окажутся полезными, и оставьте свой отзыв здесь.