internal int Update <T>(T item, ISqlLiteDataObjectCrud <T> crud) where T : class, ISqlLiteDataObject { lock (Locker) { int r; if (item.Id != 0) { Connection = new SqliteConnection("Data Source=" + Path); Connection.Open(); using (var command = Connection.CreateCommand()) { crud.Update(item, command); r = command.ExecuteNonQuery(); } Connection.Close(); return(r); } Connection = new SqliteConnection("Data Source=" + Path); Connection.Open(); using (var command = Connection.CreateCommand()) { crud.Insert(item, command); r = command.ExecuteNonQuery(); } Connection.Close(); return(r); } }