2013-03-19 99 views
1

我已经拥有了一切工作并显示供应商,但我现在想要添加的是显示哪些供应商已被选中或未选中(显示为复选框列)的列。这些选择存储在另一个包含选择它们的ProfileID和UserName(域用户)的表中。所以当目前的域用户看到表格时,会有一些供应商匹配,而不是其他供应商。实体框架5包含表可能包含或不包含匹配

我试过的是以下内容,但它给了我一个UserName错误。

了System.Collections.Generic.ICollection”不包含定义‘用户名’

但它确实包含这一领域,我已经在其他的查询在此表(见模型PIC)使用它。

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

你应该从集合x.VendorsSelected选择UserName

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); 
+0

听起来比较好,但是由于它不喜欢这样的语法,在。它现在抱怨说ProfileID在最后一行是undefiend。似乎缺少一个“)”,但如果我添加一个整体。在线投诉(请参阅更新后的文章) – SQLGrinder 2013-03-19 22:34:05

+0

忘记括号。编辑它。 – 2013-03-19 22:36:52

+0

固定它的Thx!你对我的目标显示复选框true/false从这个查询的任何建议。上面的查询返回VendorsSelected的子集合(如果有匹配的话)和空集合(如果没有匹配的话)。我如何最好地将其转化为观点? – SQLGrinder 2013-03-19 22:49:16