1

我已经完成了所有工作并显示供应商,但我现在要添加的是一个列,显示哪些供应商已被选中(显示为复选框列)。这些选择存储在另一个表中,其中包含选择它们的 ProfileID 和 UserName(域用户)。因此,当当前域用户看到该表时,将匹配某些供应商而不是其他供应商。

我尝试的是以下内容,但它给了我一个用户名错误。

System.Collections.Generic.ICollection' 不包含“用户名”的定义

但它确实包含此字段,我已在此表的其他查询中使用它(参见模型图片)。

IQueryable<VendorProfile> query = _db.VendorProfiles
     .Include("VendorsSelected")
     .Where(x => x.VendorsSelected.UserName.Contains(HttpContext.Current.User.Identity.Name))
     .OrderBy(v => v.ProfileID);

我使用的任何解决方案都必须考虑到存在匹配和不匹配(空值)的事实

在此处输入图像描述

4

1 回答 1

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);
于 2013-03-19T22:22:27.303 回答