Я думаю, что проблема заключается в том, что платформа сущностей пытается преобразовать ваше свойство FileStatus в столбец в базе данных, где он не существует, и для него нет информации о сопоставлении, которую можно использовать, как вы определили его в частичнойучебный класс.
Я вижу, что вы пытаетесь привести к перечислению, потому что, вероятно, вы используете версию Entity Framework до бета-версии 5, которая, очевидно, имеет поддержку enum (возможно, я ошибаюсь, возможно, она все еще отсутствует).
К сожалению, перечисления не очень хорошо работают в текущей версии Entity Framework (4.3.1).Существуют различные варианты, которые вы можете сделать, но ни один из них не очень удовлетворителен, и вам часто приходится случайно загружать всю таблицу в память или что-то столь же ужасное (см. Использование ADO.net Entity Framework 4 с перечислениями? Как это сделать?).
Лично я бы просто не стал беспокоиться о частичном классе и сделал бы ваш запрос так, чтобы все было просто:
var fileEntry = from entry in context.ICFiles
where entry.FileName == FileName &&
entry.Status == (int)FileStatus.InProgress
select entry;
fileEntry.First().Status = (int)FileStatus.Completed;
Не идеально, но это работает, и это показывает, что происходит ивы знаете, что предложение where будет правильно переведено в эквивалентный бит SQL для работы с базой данных (я думаю, это называется "прагматичным").