It appears that locks in ADO.Net are implemented by
the isolationLevel associated with the ADO.NET
Transaction. I suppose that by default it is
"ReadCommitted" which would be some kind of a
pessimistic lock.
I hope somebody can confirm or correct this.