2016-10-17 12 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

関連する問題