Проблема в том, что сущность, переданная методу post, не является прокси, предположительно потому, что она была создана за пределами Entity Framewortk с использованием обычного оператора "new".
Здесь есть несколько вариантов.Во-первых, вы можете изменить контроллер MVC для создания экземпляров прокси, используя метод DbSet.Create
.Я слышал, что таким способом можно изменить контроллер MVC, но сам никогда не пробовал.Например, вместо того, чтобы делать:
var doc = new Document();
в контроллере, вы должны сделать:
var doc = context.Documents.Create();
Метод create позволяет EF создать прокси для отложенной загрузки, если объект имеет соответствующуювиртуальные свойства, что в вашем случае выглядит так.
Второй и потенциально более простой вариант - не использовать отложенную загрузку, а вместо этого использовать явные API загрузки.Например, чтобы загрузить FileType:
var fileType = context.Entry(doc).Reference(d => d.FileType).Load();
Вряд ли ленивая загрузка требует явной ссылки на контекст, но в вашем случае это должно быть в порядке.