接受此代码的语法:
public async Task UpdateLocationAsync(SOs_Locations locations)
{
var db = new SQLiteAsyncConnection(SQLitePath);
await db.UpdateAsync(locations);
}
...但我不理解 SQLite 引擎如何在简单地传递类实例时知道要更新哪条记录。是否是 SQLite 或 SQLite-net 引擎查看 ID 值并在幕后执行(SQLese):
UPDATE SOs_Locations
Set Bla = Bla, etc.
WHERE ID = locations.Id
?
最佳答案
这正是它的作用。方法来源可以查看here :
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:
db.ExecuteAsync("UPDATE SOs_Locations Set Bla = ?, WHERE ID = ?", bla, id);
关于c# - SQLite 记录是如何更新的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14007891/