当我使用Entity Framework进行分组时,列表的名称属性是什么?

时间:2014-12-07 11:03:45

标签: c# asp.net entity-framework

我试图用逐句填充DropDownList。

这是我的判决

var municipios = from p in context.Nalojamientoes 
                 group p by p.Nows_Municipio 
                 into g select g;

我填充DropDownList:

DropDownList1.DataSource = municipios.ToList();
DropDownList1.DataValueField = "Nows_Municipio";
DropDownList1.DataTextField = "Nows_Municipio";
DropDownList1.DataBind();

我收到一条错误,上面写着" Theres不是名为' Nows_Municipio'"

的财产

THX!

1 个答案:

答案 0 :(得分:0)

以下查询

var municipios = from p in context.Nalojamientoes 
                 group p by p.Nows_Municipio into g 
                 select g;

将结果为IEnumerable<IGrouping<TKey, TSource>>,有关此问题的进一步说明,请查看here

简单说明,当执行此查询时,您将获得一系列组。每个组都将Nows_Municipio作为一个键,并将context.Nalojamientoes随机元素中包含的所有其他属性作为成员。

另一方面,以下声明:

DropDownList1.DataSource = municipios.ToList();

将强制执行您的查询和列表,其中将包含我们上面提到的组。话虽如此,但您不能指望在结果Nows_Municipio中将DropDownList1绑定到var municipios = from p in context.Nalojamientoes group p by p.Nows_Municipio into g select g.Key;

考虑到上述情况,您应该尝试以下方法:

DropDownList1.DataSource = municipios.ToList();
DropDownList1.DataBind();

然后你必须将你的结果绑定到DropDownList:

{{1}}

现在你会得到你想要的。