After checking the InnerException, I found that I hadn't migrated the last model change to the database (EF CodeFirst). This exposed that I had added a column to the model without doing so to the database, and as a result it wouldn't obtain the object.
Fixed by migrating, although I'd like to thank martin_costello and Ehsan Sajjad for the FirstOrDefault tip, which makes my code look a lot nicer.