ベンダーを表示するための成功クエリがありますが、今追加したいのは、どのベンダーが選択されているかどうかを示す列です (チェックボックス列として表示されます)。これらの選択は、それらを選択した FK ProfileID と UserName を含む VendorsSelected テーブルに格納されます。そのため、現在のユーザーがベンダーを表示すると、一致するベンダーと一致しないベンダーがあります。
クエリを変更するにはどうすればよいですか? 以下の Where 句は、現在のユーザーが選択したベンダーのみを取得することに注意してください。しかし、私が望むのは、選択した各ベンダーの true/false (チェックボックス) 列で表示されるすべてのベンダーです。
public IEnumerable<BrowseVendorModel> BrowseVendors()
{
IQueryable<BrowseVendorModel> viewModel = _db.VendorProfiles
.Include("VendorsSelected")
.Select(s => new BrowseVendorModel
{
ProfileID = s.ProfileID,
Name = s.Name,
CompanyName = s.CompanyName,
City = s.City,
State = s.State,
DateCreated = s.DateCreated
})
.Where(x => x.VendorsSelected.Select(s => s.UserName).Contains(HttpContext.Current.User.Identity.Name))
.OrderBy(v => v.ProfileID);
return viewModel;
}