public async Task InsertRecord(IDbRecord record) { await Task.Run(() => { ReinitEngine(); using (var tran = _engine.GetTransaction()) { tran.Technical_SetTable_OverwriteIsNotAllowed(_tableName); record.Id = tran.ObjectGetNewIdentity <long>(_tableName); tran.ObjectInsert(_tableName, new DBreezeObject <IDbRecord> { Indexes = new List <DBreezeIndex> { new DBreezeIndex(1, record.Id) { PrimaryIndex = true } }, NewEntity = true, //Changes Select-Insert pattern to Insert (speeds up insert process) Entity = record //Entity itself }, true); tran.TextInsert(_textTableName, record.Id.To_8_bytes_array_BigEndian(), record.GetTextSearchKey()); tran.Commit(); } }); }
public async Task RemoveRecord(IDbRecord record) { await Task.Run(() => { using (var tran = _engine.GetTransaction()) { tran.ObjectRemove(_tableName, 1.ToIndex(record.Id)); //remove from text engine too tran.TextRemove(_textTableName, record.Id.To_8_bytes_array_BigEndian(), record.GetTextSearchKey()); tran.Commit(); } }); }
public async Task RemoveRecord(IDbRecord record) { await Task.Run(() => { using (var tran = _engine.GetTransaction()) { tran.SynchronizeTables("Tracks", "TracksText", "Playlists", "Albums", "AlbumsText", "PlaylistsText", "PlaylistSongs", "PlaylistSongsText"); tran.ObjectRemove(_tableName, 1.ToIndex(record.Id)); //remove from text engine too tran.TextRemove(_textTableName, record.Id.To_8_bytes_array_BigEndian(), record.GetTextSearchKey()); tran.Commit(); } }); }