#asp.net #asp.net-mvc
Вопрос:
Здравствуйте, я новичок в ASP.NET
У меня есть переменная checklistsss
, которая была списком моего контрольного списка. вот код:
var checkListss = (from u in _userManager.ClearanceCheckListRepository.GetQueryable().Where(x => x.ClearanceId == userId.ClearanceId) select new { clearanceCheckListId = u.ClearanceCheckListId }).ToList();
Теперь я хочу, чтобы переменная checkListss
была помещена в предложение where в этом коде:
var due = from checkListsddd in _userManager.DueRepository.GetQueryable().Where(x => x.ClearanceCheckListId == checkListss) select new { Item = checkListsddd.Label, Action = checkListsddd.Action };
для вывода due
переменной в этом коде var checkList = from checkLists in _userManager.ClearanceCheckListRepository.GetQueryable().Where(x => x.ClearanceId == userId.ClearanceId) select new { ClearanceSignatoryId = checkLists.ClearanceSignatoryId, ClearanceCheckListId = checkLists.ClearanceCheckListId, Item = checkLists.Item, Action = checkLists.Action, Due = due };
обратите внимание, что программа checkListss
выведет несколько контрольных списков
Я не знаю, как это сделать в asp.net
спасибо вам за ваши ответы
Ответ №1:
Без каких-либо дополнительных подробностей я могу только догадываться о типах, но я думаю, что вам не хватает перечисляемого.Содержит, чтобы проверить, есть ли идентификатор checkListss
. Что-то вроде:
var checkListss = (from u in _userManager.ClearanceCheckListRepository.GetQueryable().Where(x => x.ClearanceId == userId.ClearanceId) select u.ClearanceCheckListId).ToList();
var due = from checkListsddd in _userManager.DueRepository.GetQueryable().Where(x => checkListss.Contains(x.ClearanceCheckListId)) select new { Item = checkListsddd.Label, Action = checkListsddd.Action };
Обратите внимание, что я изменил checkListss
, чтобы быть списком типа идентификатора, а не списком анонимного типа.
В качестве примечания следует отметить, что смешивание синтаксиса LINQ fluent и запросов немного сбивает с толку (субъективно), поэтому я бы больше придерживался синтаксиса fluent:
var checkListss = _userManager.ClearanceCheckListRepository.GetQueryable()
.Where(x => x.ClearanceId == userId.ClearanceId)
.Select(x => ClearanceCheckListId)
.ToList();
var due = _userManager.DueRepository.GetQueryable()
.Where(x => checkListss.Contains(x.ClearanceCheckListId))
.Select(x => new { Item = x.Label, Action = x.Action })
.ToList();