簡體   English   中英

在 ASP.NET Core Web API 中按字符串方法搜索

[英]Search by string method in ASP.NET Core Web API

我正在構建一個 ASP.NET Core 搜索 Web API,它應該返回具有相同搜索到的 QR 碼(QR 碼是外鍵)的視頻列表。

這是視頻模型:

public class Video
{
    [Key]
    public int VideoId { get; set; }
    public string Exercice { get; set; }
    public string Titre { get; set; }
    public int Sexe { get; set; }
    public int Categorie { get; set; }
    public int Level { get; set; }
    public string FilePath { get; set; } 
    public DateTime DateUpload { get; set; } = DateTime.Now;

    [ForeignKey ("Machine")]
    public string Machine_Qr { get; set; }

    public Machine machine { get; set; }
    public Coache Coache { get; set; }
}

機器類:

public class Machine
{
    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.None)]
    public string Machine_Qr { get; set; }
    public string Machine_Name { get; set; }

    public string ImagePath { get; set; }
    public DateTime InsertedOn = DateTime.Now;
    public List<Video> Videos { get; set; }
}

這是搜索控制器:

[HttpGet("{Qr}")]
public async Task<IEnumerable<Video>> Search(string qr)
{
    IEnumerable<Video> query = _context.videos.Where(e => e.Machine_Qr == qr);

    if ((query != null))
        return query;
    else
        return Enumerable.Empty<Video>().ToList();
}

我對其進行了測試,每次都得到一個空列表。

為了使用實體框架執行 Linq to SQL,您需要像這樣更新您的查詢

[HttpGet("{Qr}")]
 public async Task<IEnumerable<Video>> Search(string qr)
 {
     IEnumerable<Video> query = await _context.videos.Where(e => e.Machine_Qr == qr).ToListAsync();


    return query;

}

通過添加 .ToListAsync() 它將執行您的查詢轉換為 SQL 並返回結果

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM