This database-level option changes the implementation of the default transaction isolation level (read committed) to use snapshots instead of shared locks, potentially allowing for more scalability and fewer deadlocks. It looks like a "best practice"
we could just implement by default when we control creation of the database. Some more explanations here:
This could apply to Code First, Migrations, and Model First.
Here is an interesting article about READ COMMITTED SNAPSHOT:
I have also learned that SQL Server Azure set this on by default.