У меня есть успешный запрос, который возвращает несколько записей из объединенной таблицы, а также генерирует значение 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, если вам нужна визуальная модель
Итак, что не работает во втором запросе? – abatishchev
@abatishchev Это просто не правильный способ написать запрос, и я не знаю, как подойти к нему. Возможно, мне нужно проецировать его в пользовательскую модель просмотра, чтобы заставить ее работать, но надеясь, что это не так. – SQLGrinder
Просьба уточнить. – abatishchev