我已经完成所有工作并显示供应商,但我现在要添加的是一个列,显示已选择或未选择哪些供应商(显示为复选框列)。这些选择存储在另一个表中,该表包含选择它们的ProfileID和UserName(域用户)。因此,当当前域用户看到该表时,某些供应商将匹配,而其他供应商则不会。
我尝试的是以下内容,但它在UserName上给我一个错误。
System.Collections.Generic.ICollection'不包含'UserName'的定义
但它确实包含了这个字段,我在这个表的其他查询中使用过它(参见模型图片)。
IQueryable<VendorProfile> query = _db.VendorProfiles
.Include("VendorsSelected")
.Where(x => x.VendorsSelected.UserName.Contains(HttpContext.Current.User.Identity.Name))
.OrderBy(v => v.ProfileID);
我使用的任何解决方案都必须考虑到匹配和不匹配(空值)的事实
答案 0 :(得分:1)
您应该从集合UserName
中选择x.VendorsSelected
:
IQueryable<VendorProfile> query = _db.VendorProfiles
.Include("VendorsSelected")
.Where(x => x.VendorsSelected
.Select(v => v.UserName)
.Contains(HttpContext.Current.User.Identity.Name))
.OrderBy(v => v.ProfileID);