很难理解使用MVC、c#和Web API的SQl查询

本文关键字:API Web SQl 查询 难理解 MVC | 更新日期: 2023-09-27 18:03:34

我似乎就是找不到我想要做的事情的答案。

SQL数据库,其表的VisitIndex和TypeIndex作为两列。我已经连接了一个MVC实体控制器到它。所以,在Web API控制器中,我有GetVisit下面的工作,以抓取记录与visitindex(它的关键),但GetVisit2不是-不会编译,因为我错过了一些东西。这一行以Visit v = db开头。和查询,应该是显而易见的,我想要的记录,有两个id的指定。我是不是走错路了?

任何,所有的帮助感谢!

// GET: api/Visits/5
    [ResponseType(typeof(Visit))]
    public IHttpActionResult GetVisit(int id)
    {
        Visit visit = db.Visits.Find(id);
        if (visit == null)
        {
            return NotFound();
        }
        return Ok(visit);
    }
    // GET: api/Visits/id/typeindex is what i want (or similar)
    [ResponseType(typeof(Visit))]
    public IHttpActionResult GetVisit2(int id, int typeIndex)
    {
        Visit v = db.Visits.Where(f => f.VisitIndex == id && f => f.TypeIndex == typeIndex).SelectMany(f => f.Visit); //.Select(f => f.TypeIndex == id);   //.ToList();
        if (v == null)
        {
            return NotFound();
        }
        return Ok(v);
    }

很难理解使用MVC、c#和Web API的SQl查询

您只需要一个'Visit'对象。而且你是LINQ xxtax off。所以试试这样写:

Visit v = db.Visits.FirstOrDefault(f => f.VisitIndex == id && f.TypeIndex == typeIndex);

如果'VisitIndex'和'TypeIndex'的组合不像我假设的那样唯一。像这样修改代码:

List<Visit> v = db.Visits.Where(f => f.VisitIndex == id && f.TypeIndex == typeIndex);