System.InvalidOperationException: «Тип сущности» находится в теневом состоянии.Действительная модель требует, чтобы все типы сущностей имели соответствующий тип CLR. ' - PullRequest
0 голосов
/ 03 июня 2018

Я работаю над проектом основного веб-API asp.net, но когда я запускаю свое веб-приложение, у меня появляется эта ошибка. Я использую ядро ​​Entity Framework 2. На самом деле, у него есть проблема с методом GetAllв классе VocabularyManager.

System.InvalidOperationException: тип объекта 'Vocabulary' находится в теневом состоянии.Действительная модель требует, чтобы все типы сущностей имели соответствующий тип CLR. '

     [Route("api/vocabulary")]
    public class VocabularyController : ControllerBase
    {
        [HttpGet()]
        public IActionResult GetAllVocabulary()
        {
            var vocab = _iRepo.GetAll();
            return new JsonResult(vocab)
            {
                StatusCode = 200
            };
        }
  }

   public class VocabularyManager : IDataRepository
    {
        ApplicationContext ctx;
        public VocabularyManager(ApplicationContext c)
        {
            ctx = c;
        }


        public void Add(Vocabulary vocab)
        {
            ctx.Add(vocab);
            ctx.SaveChanges();

        }

        public void Delete(int id)
        {
            throw new NotImplementedException();
        }

        public Vocabulary Get(int id)
        {
            var vocabulary = ctx.Vocabularies.FirstOrDefault(c => c.Id == id);
            return vocabulary;
        }

        public IEnumerable<Vocabulary> GetAll()
        {
           var restVocab = ctx.Vocabularies.ToList();
            return restVocab;
        }

        public void Update(int id, Vocabulary vocab)
        {
            throw new NotImplementedException();
        }


    }

1 Ответ

0 голосов
/ 05 июня 2018

Возможно, проблема в том, что вы использовали неверный тип для вашей сущности в modelBuilder.Entity.Вы должны использовать System.Type в modelBuilder.Entity.

...