很难理解使用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);
}
您只需要一个'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);