Поскольку вы уже получаете элемент из таблицы:
var con = (from c in cmsContentTable where c.ContentName == contentId select c).FirstOrDefault();
Контекст уже «привязан» к объекту.Это верно всякий раз, когда вы извлекаете уже существующий объект из таблицы.
Если вы удалите строку:
cmsContentTable.Attach(con);
С вами все будет в порядке.
Более полезное сообщениебудет «Невозможно присоединиться к объекту, который уже подключен к контексту», поскольку это именно то, что происходит на самом деле.