【问题标题】:UWP C# app connecting to existing SQLite fileUWP C# 应用程序连接到现有 SQLite 文件
【发布时间】:2017-02-18 03:12:06
【问题描述】:

现有的所有讨论如何将 SQLite 合并到通用 Windows 平台 (UWP) 应用程序的教程都讨论了基于模型创建数据库表的必要性。是否可以将现有 SQLite 文件合并到新应用程序中并将现有表关联到类模型。

例如,有非常好的教程,例如this,它强制创建数据库表以建立数据库表到数据模型的映射。如果我已经有一个想要查询的现有表怎么办?

【问题讨论】:

  • 只要您的模型与数据库匹配,您就不会对现有数据库有任何问题。

标签: c# sqlite win-universal-app windows-10-universal


【解决方案1】:

我无法通过操纵我的数据模型来匹配现有表来识别它。

我做了以下工作:我将我的 SQLite 内容导出到 JSON 文件,在我的应用程序中创建了一个数据模型以匹配 SQLite 表,使用cited tutorial code 在应用程序中创建一个绑定它的新表到数据模型,然后读入 JSON 文件,创建数据模型的新实例,并通过 insertOrReplace 方法将它们推送到数据库中。既然这已经完成了一次,我就可以按照应用程序所需的方式运行数据库了。

【讨论】:

    【解决方案2】:

    //步骤1: //例如获取数据库的Path:

      string path = Path.Combine(Windows.Storage.ApplicationData.Current.LocalFolder.Path,
                         "ExsistingDatabase.sqlite");
                    conn = new SQLite.Net.SQLiteConnection(new
                       SQLite.Net.Platform.WinRT.SQLitePlatformWinRT(), path);
    

    // 第 2 步:例如查询您的数据库表:

    using (conn = new SQLite.Net.SQLiteConnection(new SQLite.Net.Platform.WinRT.SQLitePlatformWinRT(), path))
                {
                    var result = conn.Query<ObjectModel>(@"Select * From TableName");
                }
    

    这里的 ObjectModel 是您在输出中需要的视图模型。它可以是任何对象。
    希望这可以帮助 干杯

    【讨论】:

    • 对不起,我的讨论有点晚了,但我也遇到了同样的问题,尽管我希望使用 Entity Framework 来访问预先准备好的、预先加载的 SQLite 数据库。我无法解开的一个秘密不是一旦它已经找到通往 Windows.Storage.ApplicationData.Current.LocalFolder.Path 或其他任何东西的方式如何访问数据库,而是如何首先将它带到那里!如果我有一个全新的跨平台应用程序,以及一个数据库文件 xyz.db,已经准备好并加载了 256K 的数据,我应该把它放在哪里??
    猜你喜欢
    • 2018-01-18
    • 1970-01-01
    • 2019-11-21
    • 1970-01-01
    • 2019-05-21
    • 2017-06-30
    • 2019-07-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多