我正在编写一个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);
}
答案 0 :(得分:4)
您可以使用where语句
var company = db.companydetails.Where(c => c.Name == "My Company").FirstOrDefault();