2016-10-17 4 views
0

Невозможно неявно преобразовать тип «DoctorFront.Models.DocMaster» в «System.Collections.IEnumerable». Явное преобразование существует (вы пропали без вести броска?)Вам не хватает роли?

namespace DoctorFront.Controllers 
{ 
    public class DoctorController : ApiController 
    { 
     static readonly IDocRepositories Repository =new DocRepositories(); 
     public IEnumerable GetAllDoctor() 
     { 
      return Repository.GetAll(); 
     } 

     public IEnumerable GetDoctor(int id) 
     { 

      return Repository.Get(id); 
     } 

    } 
} 
+1

Моя догадка, что ваш 'метод GetDoctor' предназначен для возврата' DocMaster' , правильно? –

+0

измените тип возврата на что-то вроде 'DocMaster'. –

+0

Да, он возвращает главную таблицу doc –

ответ

2
public IEnumerable GetDoctor(int id) 
{ 

    return Repository.Get(id); // problem here 
} 

GetDoctor Вашего метод должен возвращать объект типа IEnumerable. Ваш оператор возврата возвращает только DocMaster объект.

Так это должно работать:

public DocMaster GetDoctor(int id) 
{ 

    return Repository.Get(id); 
} 

Надеется, что это помогает!

0

Как вам нужно сделать для любого метода, ваше возвращение должно соответствовать объявлению метода. Поэтому, если у вас есть метод public IEnumerable Get(int id), вам нужно будет вернуть любой класс, который реализует IEnumerable.

Пример BviLLe_Kid дал правильную поправку, чтобы остановить получение этой ошибки.

Вот более полный пример:

public IHttpActionResult Get(int id) 
{ 
    var doc = Repository.Get(id); 

    if (doc == null) 
     return NotFound(); 

    return Ok(doc); 
} 

Если вы работаете с Web API, это хорошо, чтобы читать о rest

Смежные вопросы