除了主键以外,是否有其他搜索方法

时间:2019-04-25 10:06:35

标签: c# asp.net-web-api

我正在编写一个asp.net Web API,它将访问保存在mysql数据库中的数据。我能够通过'api / company / {company id number}搜索显示其工作情况的特定详细信息。

但是,我想知道的是,是否有一种方法可以返回基于{company name}而不是主键{company id}的结果。

之所以如此,是因为搜索查询更有可能基于试图通过名称而不是公司ID查找公司记录的方式。

对不起,如果我听起来像个菜鸟,那是因为我。

我尝试将(int id)更改为(string id),但是在搜索类型为int的主键字段时,这只会引发错误。

public class companyController : ApiController
{
    private apollodbEF db = new apollodbEF();

    // GET: api/company
    public IQueryable<companydetail> Getcompanydetails()
    {
        return db.companydetails;
    }



    // GET: api/company/5
    [ResponseType(typeof(companydetail))]
    public IHttpActionResult Getcompanydetail(int id)
    {
        companydetail companydetail = db.companydetails.Find(id);
        if (companydetail == null)
        {
            return NotFound();
        }

        return Ok(companydetail);
    }

public class companyController : ApiController
{
    private apollodbEF db = new apollodbEF();

    // GET: api/company
    public IQueryable<companydetail> Getcompanydetails()
    {
        return db.companydetails;
    }



    // GET: api/company/5
    [ResponseType(typeof(companydetail))]
    public IHttpActionResult Getcompanydetail(string id)
    {
        companydetail companydetail = db.companydetails.Find(id);
        if (companydetail == null)
        {
            return NotFound();
        }

        return Ok(companydetail);
    }

1 个答案:

答案 0 :(得分:4)

您可以使用where语句

var company = db.companydetails.Where(c => c.Name == "My Company").FirstOrDefault();