Несколько условий в дюймах. Net Core API Linq Queries - PullRequest
0 голосов
/ 26 февраля 2020

API, который я писал, включает в себя поиск, который должен проверять базу данных и видеть, сопоставлены ли идентификаторы видео, включенные в searchVideoIDs [], с соответствующими тегами из searchTagID []. Например, видео 1 и видео 2 имеют записи в базе данных, где tagID имеет значение 3.

Этот запрос может извлечь отдельную запись для обоих идентификаторов видео, связанных с тегом 3, что означает, что http://localhost:5000/api/MapVideoTag/findVideo/?searchTagID=3&searchVideoIDs=1 работает, но ...

Когда оба идентификатора передаются в одном вызове API, например http://localhost:5000/api/MapVideoTag/findVideo/?searchTagID=3&searchVideoIDs=1&searchVideoIDs=2, я получаю пустой массив.

Буду признателен за любую информацию, поскольку почему мой запрос не возвращает все значения - вот мой код ниже.

[HttpGet("findVideo/{searchTagID?}/{searchVideoIDs?}")]
public ActionResult<IEnumerable<MapVideoTag>> FindVideoTags([FromQuery]string[] searchVideoIDs, [FromQuery]string[] searchTagID)
{
     //this item will be used to access the mapped tags
     var mappedTagItem = from mappedtag in _context.MapVideoTag select mappedtag;
     foreach (string videoID in searchVideoIDs) {
        bool verifyVideo = !String.IsNullOrEmpty(videoID);
        foreach (string tagID in searchTagID) {
           bool verifyTag = !String.IsNullOrEmpty(tagID);
           if (verifyTag == true && verifyVideo == true) {
               var parsedVideo = int.Parse(videoID);
               var parsedTag = int.Parse(tagID);
               mappedTagItem = mappedTagItem.Where(v =>
               (v.VideoId == parsedVideo)
                &&
                (v.TagId == parsedTag)
                );
                }
                }
            return mappedTagItem.ToList();
              }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...