2013-05-03 97 views
3

我正在開發我的第一個MvvmCross應用程序。我試圖用SQLite存儲應用程序設置,但我收到了一些例外,我害怕我錯過了一些東西。希望有人能指導我使用MvvmCross SQLite。在SQLite中存儲應用程序設置

在應用程序啓動時,我想從SQLite中檢索應用程序設置。我試過的是: var connection = factory.Create(「myAppDB」); (1);返回connection.get(1);

在這一點上,我得到一個異常,因爲第一次啓動應用程序的AppSettings表不存在。

如果我試圖創建一個表:

var connection = factory.Create("myAppDB"); 
connection.CreateTable<AppSettings>(); 

我得到一個異常: 「System.NotSupportedException:不知道Cirrious.MvvmCross.ViewModels.MvxRequestedBy」

任何幫幫我?由於

回答

0

的代碼看起來不錯:

var connection = factory.Create("mydb.sq;"); 
connection.CreateTable<TableType>(); 

我不認爲System.NotSupportedException: Don't know about Cirrious.MvvmCross.ViewModels.MvxRequestedBy有什麼與你張貼的SQLite的代碼。我懷疑這是來自你的啓動代碼的其他部分。

如果有幫助,我的標準SQLite的示例代碼的樣子:

public class Kitten 
{ 
    [PrimaryKey, AutoIncrement] 
    public int Id { get; set; } 
    public string Name { get; set; } 
    public int Price { get; set; } 
    public string ImageUrl { get; set; } 
} 

public class DataService 
{ 
    private readonly ISQLiteConnection _connection; 

    public DataService(ISQLiteConnectionFactory factory) 
    { 
     _connection = factory.Create("kittens.sql"); 
     _connection.CreateTable<Kitten>(); 
    } 

    public List<Kitten> KittensMatching(string nameFilter) 
    { 
     return _connection.Table<Kitten>() 
        .OrderBy(x => x.Price) 
        .Where(x => x.Name.Contains(nameFilter)) 
        .ToList(); 
    } 

    // other db methods 
} 

我很快會上傳該完整回購和N + 1個視頻 - 在此期間,我在進化所做的演示是在https://github.com/slodge/DemoFromEvolve - 它在nuget包方面略有過時,但DataService.cs中的SQLite代碼是最新的。

+0

謝謝斯圖爾特。該例外與AppSettings類型有關。 AppSettings從MvxViewModel繼承。我創建了一個新的AppSettingsEntityClass普通類,只有CLR類型的屬性來存儲所需的信息,現在工作正常。 – 2013-05-04 08:11:44

+0

如果您在appsettings中需要inpc,請嘗試mvxnotifypropertychanged基類 – Stuart 2013-05-04 10:58:18

相關問題