sqlite-net 更新方法是如何工作的?
Posted
技术标签:
【中文标题】sqlite-net 更新方法是如何工作的?【英文标题】:How does sqlite-net update method work? 【发布时间】:2015-07-25 09:07:27 【问题描述】:https://www.nuget.org/packages/sqlite-net
该库中的 Update 方法如何将数据写入数据库?它会重写所有列还是仅更新列?
【问题讨论】:
【参考方案1】:来自SQLite for Windows Phone 8.1
上的Update
方法的文档,该方法与Windows 运行时相同:
使用指定对象更新表的所有列,但主键除外。
并且执行的查询是从这行 LINQ 代码构建的:
var q = string.Format ("update \"0\" set 1 where 2 = ? ", map.TableName, string.Join (",", (from c in cols
select "\"" + c.Name + "\" = ? ").ToArray ()), pk.Name);
然后无论值是否不同,SQL 都会更新列。
如果您只想更新更改的列,您可以遍历所有列,比较传入到相应列的值,如果它们不同,则通过创建自己的查询语句运行一些更新代码。
【讨论】:
以上是关于sqlite-net 更新方法是如何工作的?的主要内容,如果未能解决你的问题,请参考以下文章
SQLite-Net 扩展 - GetAllWithChildrenAsync 没有拉动一切
使用 SQLite 的 sqlite-net-pcl 库更新单行表中单个列的值的简单方法是啥?
使用带有 sqlite-net orm 的 SQLiteConnection.Delete(object) 命令后更改 sqlite 文件大小