Entity Framework was squirting raw SELECT statements at the database and causing deadlocks.
To fix, I captured the query text with sp_BlitzLock and executed it in Plan Explorer.
Plan Explorer confirmed that the data was being retrieved using a non-clustered index combined with the clustered-index (ahah!)
The Plan Explorer / Index Analysis tab, showed the non-clustered index had failed to retrieve over 15 columns.
I was able to create a new index that covered 100% of the columns within the Index Analysis screen.
I executed the query again to confirm it was no longer using the clustered index, and was therefore quicker and less likely to cause a deadlock.