0

我想将 Linq 查询结果分配给包含 Distinct 函数的下拉列表

我的代码:-

var area = de.City_Area_View
                        .Select(m => new { m.Area_Id, m.Area_Name})
                        .Distinct()
                        .ToList();

            drpfilter.DataTextField = "Area_Name";
            drpfilter.DataValueField = "Area_Id";
            drpfilter.DataSource = area;
            drpfilter.DataBind();

问题:-当我编写此代码时,我得到以下错误

错误:- 不支持“不同”方法。

我明白了System.NotSupportedException

我想为 DropDownList 分配一个不同的区域名称所以请帮助我解决这个问题。

4

1 回答 1

2

如果您的集合足够小(因此您不介意从数据库中获取所有值),最简单的方法是强制在本地执行不同的部分:

var area = de.City_Area_View
             .Select(m => new { m.Area_Id, m.Area_Name})
             .AsEnumerable()
             .Distinct()
             .ToList();

AsEnumerable只需将表达式类型“更改”为IEnumerable<T>而不是IQueryable<T>,以便编译器调用Enumerable.Distinct而不是Queryable.Distinct- 并且Enumerable.Distict肯定会起作用。

于 2013-10-29T07:01:24.363 回答