无法隐式转换类型<docadminpannel.models.docmaster>'。存在显式转换(您是否错过了转换?)

时间:2016-10-20 10:12:05

标签: c# linq

  

无法隐式转换类型   'System.Web.Http.Results.OkNegotiatedContentResult'   到'System.Linq.IQueryable'。一个   存在显式转换(您是否错过了演员?)

public class DoctorController : ApiController
{

    Doctor_infoEntities db = new Doctor_infoEntities();

    public IQueryable<DocMaster> GetDocMasters(string searchString)
    {
        //var Doctor = db.DocMaster.ToList();
        if (searchString == "" || searchString == null)
        {
            return db.DocMaster;
        }
        else
        {
            DocMaster Doctor = db.DocMaster.Find(searchString);
            return Ok(Doctor);
        }
    }
}

1 个答案:

答案 0 :(得分:1)

您的方法签名为IQueryable<DocMaster>

您的第一个return语句会根据需要返回IQueryale<DocMaster>,但在else中您将返回Find的结果,该结果是单个对象并使用OK函数包装它它返回一个System.Web.Http.Results.OkNegotiatedContentResult对象。

将其替换为:

return db.DocMaster.Where(item => item.SomeProperty.Contains(searchString));

只需进行一些重构,您就可以更改此行:

if (searchString == "" || searchString == null)

这个:

if(string.IsNullOrEmpty(searchString)) //Or also string.IsNullOrWhiteSpace