That is the problem with flush, we are starting the server transaction and that usually locks the touched rows and if you use autoinc also the complete table for inserts.
Why do you need the flush? You can use scope.GetObjectId() to get the autinc id value as well, this might lock less resources like flush() but the server side transaction is nevertheless running.
the Telerik team
Check out Telerik Trainer
, the state of the art learning tool for Telerik products.