实体框架5包括可能包含或不包含匹配项的表

时间:2013-03-19 21:08:24

标签: asp.net-mvc-4 entity-framework-5

我已经完成所有工作并显示供应商,但我现在要添加的是一个列,显示已选择或未选择哪些供应商(显示为复选框列)。这些选择存储在另一个表中,该表包含选择它们的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);

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

enter image description here

1 个答案:

答案 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);