Не удается неявно преобразовать тип «Esystem.ViewModels.viewmodelclass» в «System.Linq.IQueryable».' - PullRequest
0 голосов
/ 21 января 2012

я создал следующий класс модели представления folloiwng

public class viewmodelclass
{
    public IEnumerable<Question> Questions { get; set; }
    public decimal Total { get; set; }
    public string Message { get; set; }

}

, затем я написал следующий метод для создания viewmodelclassobjects в моем классе модели репозитория: -

public IQueryable<viewmodelclass> d (int number)
    { var q_t =  new viewmodelclass()
    {
            Message = "This question current;y have" + number,
            Total = number,
            Questions = from question123 in entities1.Questions
                               where question123.QuestionID >= number
                               select question123
        };
 return q_t;}

, который будет вызываться с использованиемследующий метод внутри моего класса контроллера: -

 public ActionResult dd (int number = 0)
    { var q2 = elearningrepository.d(number);
        return View(q2);}

, но я получаю следующую ошибку при * return q_t *: - Невозможно неявно преобразовать тип 'Esystem.ViewModels.viewmodelclass' в'System.Linq.IQueryable.Существует явное преобразование (вам не хватает приведения?), Так как я могу преодолеть эту ошибку?BR

Ответы [ 3 ]

2 голосов
/ 21 января 2012

Э-э-э-э-э: риск звучания очевиден - это неправильный тип возврата.Используйте

 public viewmodelclass d (int number)
        { var q_t =  new viewmodelclass()
        {
                Message = "This question current;y have" + number,
                Total = number,
                Questions = from question123 in entities1.Questions
                                   where question123.QuestionID >= number
                                   select question123
            };
     return q_t;}
1 голос
/ 21 января 2012

Измените метод "d", чтобы он возвращал только класс представления

public viewmodelclass d (int number)
    { var q_t =  new viewmodelclass()
    {
            Message = "This question current;y have" + number,
            Total = number,
            Questions = from question123 in entities1.Questions
                               where question123.QuestionID >= number
                               select question123
        };
 return q_t;}

Измените ваш вид, чтобы ожидать модель представления класса в качестве своей модели. Вы действительно не должны передавать IQueryable в этом случае.

0 голосов
/ 21 января 2012

Кажется, вы создаете один экземпляр вашего класса viewmodelclass и пытаетесь вернуть его как IQueryable.Простое исправление, измените тип возврата в методе "d" в вашем хранилище с IQueryable<viewmodelclass> на viewmodelclass.

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