Для подкаст, который обсуждает ORM подробно, посмотрите следующую ссылку. http://se-radio.net/podcast/2008-12/episode-121-or-mappers-michael-ploed
Этот код выглядит хорошо. Вы должны проверить, что на самом деле находится в поле Date, и убедиться, что вы, например, не устанавливаете только Date объекта DateTime на уровне базы данных, что приведет к тому, что все объекты DateTime определенной даты будут указывать на 00:00:00 таким образом, LINQ не знает, как их отсортировать.
Глядя на предоставленный вами ответ (который, к вашему сведению, следует переместить в вопрос в качестве редактирования), вы должны применить ThenBy, а не новый OrderBy:
var articles = db.Articles.OrderByDescending(a => a.Date).ThenBy(a => a.Id).ToList();