Can I prevent deadlock using `WITH(NOLOCK)`?
A better idea would be to enable snapshot isolation: https://docs.microsoft.com/en-us/dotnet/framework/data/adonet/sql/snapshot-isolation-in-sql-server

This will enable each transaction to have its own snapshot of data and will not lock, or block other transactions.