Есть ли способ поиска кроме первичного ключа - PullRequest
0 голосов
/ 25 апреля 2019

Я кодирую веб-API asp.net, который будет получать доступ к данным, хранящимся в базе данных MySQL.Я могу искать конкретные детали через 'api / company / {id компании id}, который показывает его работу.

Однако меня интересует, есть ли способ вернуть результат, основанный на {companyимя}, а не первичный ключ {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 Ответ

4 голосов
/ 25 апреля 2019

Вы можете использовать оператор where

var company = db.companydetails.Where(c => c.Name == "My Company").FirstOrDefault();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...