L'api C# Fetch autorise des requétes CQL. Il me semble qu'un appel avec CQL en paramètre ait une grosse fuite mémoire :
Code avec fuite mémoire:
var noSqlQry = string.Format("SELECT * FROM item_by_tx WHERE tx_id='{0}' AND item_type={1}", item.TxId, item.ItemType); if (_logger.IsEnabled(LogLevel.Trace)) _logger.LogTrace("Exec NoSQL query: {0}", noSqlQry); itemByTx = _mapper.Fetch<ItemByTx>(Cql.New(noSqlQry)) .OrderBy(x => x.ItemStamp) .LastOrDefault(x => x.ItemStamp >= start && x.ItemStamp < end);
Code sans fuite mémoire:
IEnumerable<ItemByTx> items = _mapper.Fetch<ItemByTx>("SELECT * FROM item_by_tx WHERE tx_id= ? AND item_type= ?", item.TxId, item.ItemType) .Where(x => x.ItemStamp >= start && x.ItemStamp < end) .OrderBy(x => x.ItemStamp);