GetQueryable

protected abstract IQueryable<OrmBABase> GetQueryable();

Die wird benutzt, um den Arbeitsvorrat zu ermitteln, der von ProcessSingleOrm bearbeitet werden soll. Der zurückgelieferten Query werden weitere Where-Bedingungen hinzugefügt, um die Paketierung und das Wiederaufsetzen zu steuern.

Die Implementierung sollte für die Query die UnitOfWork des Work-Items benutzen, wenn die später gemachten Änderungen mit dem Status des Workers in einer Transaktion gespeichert werden sollen. Dies ist der einfachste Weg, um sicher zu stellen, dass Änderungen niemals doppelt ausgeführt werden, falls der Worker mal unterbrochen wird. Andernfalls muss man sich selbst um die Vermeidung von Doppelausführungen kümmern.

ProcessSingleOrm

protected abstract void ProcessSingleOrm(OrmBABase ormBABase);

Hier erfolgt die eigentliche Arbeit. Der Worker kann mit dem Datensatz letztlich machen, was er will, und auch andere Datensätze verändern.

Falls GetQueryable die UnitOfWork des Work-Items verwendet hat, ist kein explizites Speichern erforderlich. Dies erfolgt nach jedem Aufruf der Methode automatisch.