使用 MvvmCross 复制预填充 SQLite 数据库的首选方法是什么

2024-01-15

我正在修改 N-10-KittensDb 示例解决方案。 我了解如何创建 SQLite 数据库,但我希望使用现有数据库。我猜我需要将数据库复制到正确的 UI 数据文件夹。也许它是在核心项目中完成的?如果是这样,正确的路径如何注入到正在运行的 Exec 中?因为 Core 可以在许多 UI 中使用?调用什么方法来查看数据库是否存在或需要复制?

来自数据服务的示例:

public DataService(ISQLiteConnectionFactory factory)
{
    const string file = "Cats.sldb";
    var connection = factory.Create(file);
    connection.CreateTable<Kitten>();
}

我相信 Android vs Phone vs Touch vs Wpf 的路径是不同的?

请指导我使用适用于 Phone 或 Wpf 的 Cirrious.MvvmCross.Plugins.Sqlite 的示例代码。

谢谢 担


默认情况下,每个平台都会在适合该平台的文件夹位置创建一个数据库 - 例如触摸用途:

    public ISQLiteConnection Create(string address)
    {
        var path = Environment.GetFolderPath(Environment.SpecialFolder.Personal);
        return new SQLiteConnection(Path.Combine(path, address));
    }

from https://github.com/slodge/MvvmCross/blob/v3/Plugins/Cirrious/Sqlite/Cirrious.MvvmCross.Plugins.Sqlite.Touch/MvxTouchSQLiteConnectionFactory.cs#L18 https://github.com/slodge/MvvmCross/blob/v3/Plugins/Cirrious/Sqlite/Cirrious.MvvmCross.Plugins.Sqlite.Touch/MvxTouchSQLiteConnectionFactory.cs#L18

为了读/写文件,MvvmCross 确实捆绑了一个文件插件 - 默认情况下它也在平台特定位置运行 - 但两者可能不完美匹配 - 例如看:

    protected override string FullPath(string path)
    {
        if (path.StartsWith(ResScheme))
            return path.Substring(ResScheme.Length);

        return Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), path);
    }

from https://github.com/slodge/MvvmCross/blob/v3/Plugins/Cirrious/File/Cirrious.MvvmCross.Plugins.File.Touch/MvxTouchFileStore.cs#L22 https://github.com/slodge/MvvmCross/blob/v3/Plugins/Cirrious/File/Cirrious.MvvmCross.Plugins.File.Touch/MvxTouchFileStore.cs#L22

由于这种不匹配,为了跨平台共享相同的特定于数据库的复制代码,您可能会发现在每个平台上注入您自己的特定于平台的副本更容易 - 有关注入特定于平台的服务的更多信息,请参阅http://slodge.blogspot.co.uk/2013/06/n31-injection-platform-specific.html http://slodge.blogspot.co.uk/2013/06/n31-injection-platform-specific.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 MvvmCross 复制预填充 SQLite 数据库的首选方法是什么 的相关文章

  • 检测SQLite3中的FTS3扩展

    用于检测是否安装了 FTS3 扩展模块的 SQLite 查询是什么 或者是否可以使用 SQLite3 查询获取已安装扩展的列表 它必须与pysqlite2 我知道我可以使用以下命令获取表格列表SELECT FROM sqlite maste
  • iPhone 存储图像的最佳方式

    我正在开发一个应用程序 需要缓存一些来自网络的图像 图像可能是 100x100 我只需要知道哪个更好 将图像作为文件存储在 iPhone 文件系统中 将它们作为 blob 与已保存在数据库中的其他数据一起存储在 sqlite 数据库中 感谢
  • SQLiteAssetHelper 甚至在从资产文件夹复制数据库之前就导致立即崩溃

    https github com jgilfelt android sqlite asset helper https github com jgilfelt android sqlite asset helper 我要从SQLiteOpe
  • 尝试重新打开已关闭的对象:sqlitequery

    所以本质上我查询数据库两次 我不明白这个错误真正来自哪里 因为我没有在任何地方关闭数据库 返回错误的代码是这样运行的 我查了一下 刚刚看到一个像我这样的案例 BeaconHandler pullAllDB new BeaconHandler
  • Rails Resque 作业无法访问数据库,I/O 错误

    我遇到错误 无法找到任何相关信息 这是一个 Ruby on Rails 堆栈 Ruby 1 9 Rails 3 2 并使用 sqlite3 数据库进行开发 Resque 和 Redis 用于后台作业 Rails Web 应用程序启动正常 可
  • 将 .sql 文件导入 SQLite

    我正在尝试将大型 sql 文件导入 SQLite db 文件 但出现以下错误 sqlite gt read smsCorpus en 2012 04 30 sql Error near line 23 near COMMENT syntax
  • 将数据库(例如 sqlite)与 cocos2d-x 一起使用

    我开始在 iPhone 上构建游戏应用程序 我正在使用 cocos2d x 游戏引擎 因为它很容易从那里移植到 Android 而且编码是用我非常熟悉的C 编写的 我想知道是否有办法在 cocos2d x 中使用任何数据库 虽然sqlite
  • 带外键或不带外键的引用有什么区别

    关于SQLite 带外键或不带外键的引用有什么区别 这有什么区别 CREATE TABLE players set id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL player id INTEGE
  • 如何从 SQLite 的异步 PCL 版本使用 SQLiteAsyncConnection?

    我使用的是 Sqlite net 的 PCL 版本https github com oysteinkrog SQLite Net PCL https github com oysteinkrog SQLite Net PCL 但是 我无法获
  • 在 sqlite 数据库中以 BLOB 形式存储的图像的最大大小是多少?

    我将图像作为 BLOB 存储在 sqlite 数据库中 谁能告诉我在 sqlite 数据库中以 BLOB 形式存储的图像的最大大小 See the SQLite 的限制 https www sqlite org limits html SQ
  • 在插入 SQLite 之前检查表 B 中的日期是否在表 A 中的日期之间

    我有一个名为 项目 的表 其中包含开始日期和结束日期 我还有一个名为 Plan 的表 它有自己的开始日期和结束日期列 但我通过某种方式验证计划开始 结束日期是否在匹配的项目开始 结束日期之间 我不知道在创建表或向计划表中插入行时添加检查是否
  • 如何在 sqlite3 数据库中存储音频文件并在 iphone 中播放它们?

    我想在数据库中存储音频文件 任何支持 mp3 wav 和 iphone 的格式 并在 iPhone 上播放它们 知道如何做到这一点吗 我不知道为什么你想将音频文件存储在 SQL 数据库中 但 sqlite3 支持 BLOB 因此 将它们存储
  • 间歇性 SQLiteException:dbopen 上不是错误

    在我的应用程序中 我在很多情况下使用数据库 但有一种情况我遇到异常 但不是每次都出现异常 并且可以重现它 还 这种情况仅发生在操作系统版本 2 3 7 和 2 1 update 1 上 代码 public void removeOldOcc
  • sqlite android 中的波斯语/阿拉伯语搜索给出了错误的结果

    我的 sqlite 数据库有问题 它似乎不支持完整的波斯 阿拉伯字符 当我根据波斯字符搜索某些字段时 大多数时候 Sqlite 无法识别这些字符 我通过从 HTML 文件复制数据将数据插入数据库 所以当我输入字符串并搜索时 没有结果显示 但
  • 同时使用实体框架与 SQL Server 和 SQLite 数据库

    我有一个用于测试目的的 C Net 4 0 控制台应用程序 使用 VS 2012 我的目标是能够创建一个可在 MS SQL Server 数据库和 SQLite 数据库上使用的单个实体框架 edmx 文件 基本上 我想使用相同的实体模型类和
  • python sqlite3从excel创建数据库

    我正在尝试从 Excel 电子表格创建数据库 我有下面的代码 问题是当我运行代码时 我的数据库为每列创建一个表 我想为工作簿中列出的每个电子表格创建一个表格 工作表名称为工作表 1 和工作表 2 import sqlite3 import
  • SQLite - 左连接

    我需要进行这样的查询 SELECT table1 table2 column FROM table1 LEFT JOIN table2 ON table1 column table2 column 但这不起作用 如果我尝试相同的查询但替换第
  • 如何在 SQLite 中将时间戳转换为字符串?

    我有一个表 其中存储了时间戳 以毫秒为单位 我想将这些时间戳转换为人类可读的形式 这是我的表的输出示例 SELECT date raw strftime d m Y date 1000 as string FROM my table raw
  • 尝试将 SQLite DB 从数据复制到 SD 卡

    我正在使用以下代码 该代码发布在 Stack Overflow 上的某个位置 并根据我的目的进行了修改 try File sd Environment getExternalStorageDirectory File data Enviro
  • Sqlite数据库生命周期?关闭应用程序后它会被删除吗?

    我正在遵循一个简单的教程 该教程创建一个从 SQLiteOpenHelper 扩展的类 并创建一个包含一个表和 5 行的数据库 好的 但我需要更多地了解 android Sqlite 数据库 例如 如果应用程序关闭或手机关机会发生什么 数据

随机推荐

  • Control-C 和 C 中的信号处理

    我有 2 个进程通过套接字相互通信发送者和接收者 我想捕获信号 Control C 并且不退出 显示一些输出 发送者和接收者工作正常 所以我将信号 SIGINT 处理程序 添加到发送者的身体 handler 只是输出一些文本 所以当我运行它
  • Rails:没有复数的路由给出了奇怪的助手

    通过此设置 我得到了一个奇怪的命名助手 在 config routes rb 中我有 Qtl Application routes draw do resources qtl table do collection do get searc
  • 使用 Visual Studio 的 link.exe 的链接文件限制是多少?

    我知道一些链接器对命令行上允许的目标文件数量有限制 Visual Studio 是什么 此外 如果超过此数字 某些链接器允许您指定一个包含所有目标文件名称的文件 并且您只能将其作为参数传递 这是一个例子来向您展示我的意思 some link
  • 全文搜索仅返回精确匹配

    我有以下脚本 select c id from TBL COUPONS as c inner join TBL BUSINESS as b on c business id b business id inner join TBL BLOC
  • Android:API级别VS。安卓版本

    我是Android开发新手 我想知道版本和API级别之间有什么联系或区别 每一项指的是什么 当我决定为 API 14 或 Android 4 0 开发一些应用程序时 这意味着什么 或者一个是另一个的子集 我根本没明白其中的区别 为什么有两个
  • Android - EditText 与软键盘重叠

    我正在开发一个有一些 EditText 的 Activity 当我单击 触摸 EditText 时 会出现软键盘 但是屏幕底部的 EditText 与软键盘重叠 显示 EditText 的上半部分 下半部分位于键盘下方 我设置了androi
  • Julia Dataframes 与 Python pandas

    我目前正在使用 pythonpandas并想知道是否有办法将 pandas 中的数据输出到 Julia 中Dataframes反之亦然 我认为你可以从 Julia 调用 pythonPycall但我不确定它是否适用于数据帧 有没有办法从 p
  • javascript 获取子域上的 iframe url 当前页面

    我需要获取页面上 iframe 所在的页面 url 因为我们使用 iframe 来处理订购产品 然而 在我的一生中 我似乎无法让它显示 iframe 的 URL 显示是一个测试 因为当我看到它有效时它会自动发送电子邮件 代码
  • Magento:获取商店联系电话

    看起来应该很简单 但在任何地方都找不到解决方案 我需要输出商店联系电话号码 该号码位于管理员的商店信息中 我需要将其输出到模板文件和 CMS 页面中 每个文件的代码是什么 谢谢 那是一个核心配置 所以它被保存在core config dat
  • 多数据库 Grails 应用程序的 Spring 或 Hibernate 多租户

    Grails 有一个用于单个数据库的多租户插件和一个用于多数据库的多租户插件 但不再支持 维护用于多数据库的插件 有没有什么方法可以让我将 Spring 或 Hibernate 本身用于多租户多数据库 Grails 应用程序 您可以使用此处
  • 如何从 JavaScript 中隐藏时间标准

    我只想显示天 日期 时间 现在显示 其实我想显示如下 如何删除 印度标准时间 使用的代码如下
  • Vue:等待渲染,直到安装所有组件

    我有一个 Vue Nuxt Web 应用程序 其中页面是从许多具有子组件的组件动态生成的 问题是页眉和页脚首先渲染 然后是具有实际内容的子组件 第一次加载时这看起来很糟糕 而且 Lighthouse 不喜欢它 这是一个Avoid large
  • 使用自动布局将堆栈视图垂直定向为纵向,水平定向为横向

    获得纵向垂直堆栈视图以横向水平对齐的最佳方法是什么 我尝试过代码和自动布局解决方案 但它们不起作用 有没有简单的方法可以在故事板中做到这一点 您需要以编程方式更新axis的财产UIStackView https developer appl
  • web.py 和 Gunicorn

    我的问题基本上是标题中的内容 如何设置gunicorn来运行web py应用程序 另外 如果有任何差异 我将如何在heroku上做到这一点 我已经使用内置的cherrypy在heroku上运行了我的应用程序 但我无法让gunicorn与we
  • SQL正则表达式获取电话号码

    我想获取满足特定条件的文本字符串的电话号码 9个字符 数字 只能从9 8 7 6开始 我尝试使用以下表达式 9 8 7 6 0 9 8 在以下函数中 DECLARE str VARCHAR MAX DECLARE validchars VA
  • OR 条件的流畅断言

    我正在尝试为以下条件设置流畅的断言 但找不到带有表达式的方法或带有 Or 的对象断言 我必须检查我的服务状态是否具有枚举值Pending or Active services Should HaveCount totalServices A
  • Laravel 5:如果用户已登录,则更改导航栏

    总的来说 我对 Laravel MVC 和模板引擎完全陌生 如果用户登录 我需要显示某些导航栏按钮和选项 例如 通知 注销 个人资料等 以及登录按钮 非常感谢任何关于如何以正确的方式解决这个问题的帮助 这是我目前正在考虑的 A User对象
  • mysql 不尊重 my.cnf 中的 wait_timeout 设置

    我在 my cnf 中设置了 wait timeout 并重新启动了服务器 但空闲连接的时间继续增长 超过了我设置的默认 100 秒 有什么想法为什么会发生这种情况吗 PS 我正在运行 ubuntu 12 04 和 Mysql Server
  • WPF:绑定到组合框选定项

    我有一个带有基于 XML 数据的 ComboBox 的 UserControl
  • 使用 MvvmCross 复制预填充 SQLite 数据库的首选方法是什么

    我正在修改 N 10 KittensDb 示例解决方案 我了解如何创建 SQLite 数据库 但我希望使用现有数据库 我猜我需要将数据库复制到正确的 UI 数据文件夹 也许它是在核心项目中完成的 如果是这样 正确的路径如何注入到正在运行的