c# - sqlite-net 更新方法如何工作?

标签 c# sqlite orm windows-runtime sqlite-net

https://www.nuget.org/packages/sqlite-net

这个库的 Update 方法如何将数据写入数据库?它会重写所有列还是只更新列?

最佳答案

来自 Windows Phone 8.1 的 SQLite 上的 Update 方法的文档,它与 Windows 运行时相同:

Updates all of the columns of a table using the specified object except for its primary key.

执行的查询是从这行 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 都会更新列。

如果您只想更新更改的列,您可以遍历所有列,比较传递给适当列的值,如果它们不同,则通过创建您自己的查询语句来运行一些更新代码。

关于c# - sqlite-net 更新方法如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31624854/

相关文章:

c# - 有没有办法从 visual studio 添加检测文件移动操作

ios - 数据库插入花费太多时间 ios sqlite

sql - 如何根据现有列重命名查询中的列

sql - 哪个是避免 n+1 问题的最快执行方法,为什么?

java - 没有第三个表的一对多关联

c# - 为什么在 Jon Skeet 的书中的这个例子中使用了 internal 关键字?

c# - 为什么不编译多次使用 PreApplicationStartMethodAttribute?

c# - 如何使用 LINQ to SQL 和 DbLinq 选择空值?

mysql - 如何在 Fat-Free Framework 中插入没有主键的多条记录

c# - 如何使用 asp.net mvc 呈现从支付网关返回的 HTML 响应