Based on Xamarin University course sample, implementing SQLite usage in an app where I am getting the exception "Unhandled Exception: System.NotSupportedException: Don't know how to read AppPrefs.Models.Settings occurred"
My App.xaml.cs:
using System;
using System.IO;
using Xamarin.Forms;
using Xamarin.Forms.Xaml;
[assembly: XamlCompilation(XamlCompilationOptions.Compile)]
namespace AppPrefs
{
public partial class App : Application
{
internal static SettingsDatabase SettingsDB;
public App()
{
InitializeComponent();
SettingsDB = SettingsDatabase.Initialize(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "SettingsSQLite.db3"));
//MainPage = new MainPage();
MainPage = new NavigationPage(new MainPage())
{
BarBackgroundColor = Color.Indigo,
BarTextColor = Color.White
};
}
protected override void OnStart()
{
// Handle when your app starts
}
protected override void OnSleep()
{
// Handle when your app sleeps
}
protected override void OnResume()
{
// Handle when your app resumes
}
}
}
My SettingsDatabase.cs
using AppPrefs.Models;
using SQLite;
namespace AppPrefs
{
public class SettingsDatabase
{
private SQLiteAsyncConnection dbConn;
public static SettingsDatabase instance;
public SettingsDatabase() { }
public SettingsDatabase(string dbPath)
{
dbConn = new SQLiteAsyncConnection(dbPath);
dbConn.CreateTableAsync<Settings>().Wait();
}
public static SettingsDatabase Initialize(string filename)
{
if (instance != null)
instance.dbConn.GetConnection().Dispose();
instance = new SettingsDatabase(filename);
return instance;
}
}
}
My Settings.cs:
using SQLite;
namespace AppPrefs.Models
{
[Table ("settings")]
public class Settings
{
[PrimaryKey, AutoIncrement]
public int Id { get; set; }
public string strSettings { get; set; }
}
}