After you fetch the collection, you have to extract all id's then use them in the UpdateMulti filter.
List<int> thePks = new List<int>();
foreach (RecordEntity rec in Records)
{
thePks.Add(rec.RecordId);
}
IPredicateExpression updateFilter = new PredicateExpression(
RecordFields.RecordId == thePks);
// call to update multi with updateFilter
...
This will generate an sql something like (simplified):
UPDATE Records
SET MyDate = @someValue
WHERE RecordId IN (@value1, @value2, @value3, ..., @valueN)
(where N is the number of records you fetched). Be aware that some databases had limits on how much values you can include in a 'IN' clause set. If there are too much values, your DB will complain about that, in that case you have to elaborate a predicateExpression that meets your needs. In the worst-case scenario, you will break the update into chunks. For example, if you have 10000 fetched entities, you can update them in groups of 1000 for instance.