There is something I don't really find an answer to:
db.Sensors.Where(s => s.Id == id).Single();
Is the Single() here necessary? There will normally only be given a single result, but is it really necessary to add it or is it redundant? What is the best practice?