2013-04-22 4 views
4

Я хотел бы использовать базу данных Sqlite в моем приложении Monotouch. От http://docs.xamarin.com/recipes/ios/data/sqlite я вижу два варианта.Monotouch Sqlite-net или ADO.Net

  1. Sqlite внутрисетевые
  2. ADO.NET

Выполнение исследований я обнаружил, что Sqlite-сеть проста в использовании, работает как на КСН и Android, но не поддерживает внешний ключ концепции. Моя потребность в том, чтобы иметь отношения в моем db. Таблица учеников связана с таблицами классов, профессоров, назначений. Не так сложно !!! Поддерживает ли Sqlite-net такие отношения? Какой из них лучше выбрать Sqlite-net или ADO.Net. Оценка: Спасибо

ответ

2

ADO.Net не дает вам поддержки в отношении отношений. Это дает вам только сырые классы, такие как SQLCommand и SQLDataReader.

Я бы очень рекомендовал sqlite-net, так как это огромный временной ресурс в ORM.

Вы можете настроить внешние ключи, вызвав ручные операторы SQL в sqlite-net, что в любом случае будет делать с ADO.Net.

Так с SQLite-сети, существует несколько способов, вы можете настроить вашу базу данных: API-интерфейсы

  1. Call SQLITE-Net для создания таблиц на основе ваших C# классов, затем добавить вещи, он не поддерживает с инструкцией по эксплуатации SQL, как внешние ключи и индексы
  2. Включите пустую базу данных с вашим приложением с полной схемой уже настройками
  3. Создать всю базу данных с сырой SQL скриптом

I как правило, идут с опцией №2, если я хочу полностью контролировать схему базы данных (и немного проще включить файл базы данных, который я сделал в SQLite Expert). sqlite-net должен отлично работать с существующей базой данных.

+0

Если вы буквально ничего не знаете о SQL и схемах, я бы тоже опасался (1), так как у меня не было никаких проблем, вызванных разработчиками, использующими этот подход, и не зная/не понимая, какая схема была превращена в , Также, любая идея, что происходит, когда вам нужно обновить схему, например добавить новое поле в таблицу? Если вы добавите поле в класс, что происходит со старыми данными, как это может быть обновление версии приложения, оно добавляется? – SharpC

+0

Да, я обычно иду с №2, а затем мне пришлось перевернуть свой план миграции для изменений схемы. [SQLiteExpert] (http://www.sqliteexpert.com/) - отличный инструмент для создания баз данных раньше времени. – jonathanpeppers

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