sqlite-net update方法如何工作?

时间:2015-07-25 09:07:27

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

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

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

1 个答案:

答案 0 :(得分:1)

来自UpdateSQLite for Windows Phone 8.1方法的文档,该文档与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将更新列,无论值是否不同。

如果您只想更新已更改的列,则可以循环遍历所有列,将传入的值与相应的列进行比较,如果它们不同,则通过创建自己的查询语句来运行一些更新代码。 / p>