c# не может конвертировать набор system.data.entity - PullRequest
0 голосов
/ 14 апреля 2020

Я получаю эту ошибку, и я не уверен, почему я пытался выполнить IQueryable или преобразовать объект, но все еще получаю эту ошибку.

enter image description here Интерфейс

 IQueryable<Template> UpdateRegimenCodeId(Regimen Regimens);

Контроллер

TemplatesDataService.UpdateRegimenCodeId(template.Regimens);

DataService

 public Regimen UpdateRegimens(regimens)
        {
            if (regimens != null)
            {
                foreach (var regimen in regimens)
                {

                }
            }
        }

1 Ответ

1 голос
/ 14 апреля 2020

Метод UpdateRegimenCodeId ожидает один экземпляр Regimen:

IQueryable<Template> UpdateRegimenCodeId(Regimen Regimens);

Семантически, и поддерживается сообщением об ошибке, вы передаете ему коллекцию Regimen s:

TemplatesDataService.UpdateRegimenCodeId(template.Regimens);

Другими словами, метод ожидает яблоко, а вы передаете ему корзину яблок.

Из приведенного кода не ясно, для чего предназначен этот метод или то, что должно представлять возвращаемое значение, но по сути у вас есть несколько вариантов:

  1. Выберите один элемент из template.Regimens, который вы хотите использовать, и передайте этот один элемент методу.
  2. L oop через template.Regimens и передать каждый элемент методу.
  3. Создать версию метода, которая принимает коллекцию вместо одного объекта.

Какой подход уместен, зависит от того, что вы пытаетесь сделать. Но в конечном итоге сама ошибка сводится к разнице между отдельным объектом (яблоком) и набором предметов (корзиной яблок).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...