1

У меня есть успешный запрос, который возвращает несколько записей из объединенной таблицы, а также генерирует значение bool Selected (если запись существует для текущего пользователя в другой таблице).Выбор одного столбца bool из другой таблицы

public IEnumerable<BrowseVendorModel> SearchVendors(CustomSearchModel criteria) 
{ 
    var query = _db.VendorProfiles 
        .Include("VendorCategories") 
        .Include("VendorsSelected") 
        .Select(s => new BrowseVendorModel 
         { 
          ProfileID = s.ProfileID, 
          Name = s.Name, 
          CompanyName = s.CompanyName, 
          City = s.City, 
          State = s.State, 
          DateCreated = s.DateCreated, 
          // gets bool for selected vendors for current user 
          Selected = s.VendorsSelected.Select(vs => vs.UserName).Contains(HttpContext.Current.User.Identity.Name), 
          VendorsSelected = s.VendorsSelected, 
          VendorCategories = s.VendorCategories 
         }) 
        .OrderBy(x => x.DateCreated); 
    return query; 
} 

Я пытаюсь написать еще один запрос, который retreives один ряд, но также необходимо, чтобы получить, что Ий Selected значения без проецирования результатов в класс, как один из приведенной выше. Это моя неудачная попытка приблизиться.

public VendorProfile GetVendor(String id) 
{ 
    Guid pid = Guid.Parse(id); 
    var viewModel = _db.VendorProfiles 
     .Include("VendorCategories.ProductServiceCategory") 
     .Include("VendorsSelected") 
     .Select(s => new { 
      VendorProfiles = s, 
      Selected = s.VendorsSelected.Select(vs => vs.UserName).Contains(HttpContext.Current.User.Identity.Name) 
     }) 
     .Where(s => s.VendorProfiles.ProfileID == pid); 
    return viewModel; 
} 

Эта BOOL колонка Я пытаюсь создать было бы ложным, если нулевой (без записи матча) и правда, если запись не найдена. см. это link, если вам нужна визуальная модель

+0

Итак, что не работает во втором запросе? – abatishchev

+0

@abatishchev Это просто не правильный способ написать запрос, и я не знаю, как подойти к нему. Возможно, мне нужно проецировать его в пользовательскую модель просмотра, чтобы заставить ее работать, но надеясь, что это не так. – SQLGrinder

+0

Просьба уточнить. – abatishchev

ответ

0

В этом случае, поскольку мне нужно только одно дополнительное значение bool для отображения на странице, и так как это была страница редактирования, в которой модель представления должна отображаться обратно модель домена ... Казалось, что слишком много работы для одного столбца bool, поэтому я пошел с отдельным запросом, который заполняет ViewBag :)

Смежные вопросы