2010-11-01 104 views
0

我想将这个查询的结果返回到我可以用来填充SelectList的东西。我尝试了一个NameValueCollection和一个IEnumerable,但都失败了。如何从此Linq查询填充SelectList?

给出此代码的选项是什么?此代码不起作用,但查询正是我想要的。


     public IEnumerable GetValidAssociationsForSelectList() 
     { 
      var associations = (from a in context.Associations 
           join u in context.Units on a.AssociationKey equals u.AssociationKey 
           where a.CCRRecording != null && a.CCRRecording.ToString() != "" 
           orderby a.LegalName 
           select new { a.AssociationKey, LegalName = a.LegalName.Replace("'", "") }).Distinct(); 
     } 

回答

0

您应该返回协会查询:

public IEnumerable GetValidAssociationsForSelectList() { 

    var associations = (....) 

    return associations; 

} 

然后遍历了IEnumerable填充在DropDownList的listItems中,这样的事情:

foreach (var item in GetValidAssociationsForSelectList()) 
{ 
    ddlAssociations.Items.Add(new ListItem(item.AssociationKey, item.LegalName)); 
} 
0

您需要使您的select语句的返回类型与您的IEnumerable匹配。

这里是去了解的一种方式:

public IEnumerable<ListItem> GetValidAssociationsForSelectList() { 
    var associations = ...; 
    return associations.Select(a => new ListItem(item.AssociationKey, item.LegalName)); 
}