Asp.net linq选择明确绑定到下拉列表 [英] Asp.net linq select distinct bind to dropdownlist

查看:98
本文介绍了Asp.net linq选择明确绑定到下拉列表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

AceDataContext db = new AceDataContext();
var fal = db.Faculties
    .Select(m => new { m.FacultySName, m.FacultyID })
    .AsEnumerable()
    .Distinct()
    .ToList();
 ddlFal.DataTextField = "FacultySName";
 ddlFal.DataValueField = "FacultyID";
 ddlFal.DataSource = fal;
 ddlFal.DataBind();





我的尝试:



目前我想从我的数据库中选择不同的并显示到我的下拉列表中,但我的代码不能正常工作。



数据库数据

1 | FASC

2 | FEBE

3 | FASC

4 | FABA

5 | FABA



我想要下拉列表输出是

FASC

FEBE

FABA



但是下拉列表会显示所有内容。我的代码需要一些解决方案。



What I have tried:

Currently i want to select distinct from my database and display into my dropdownlist, but my code doesn't work well.

Database data
1 | FASC
2 | FEBE
3 | FASC
4 | FABA
5 | FABA

I want the dropdownlist output is
FASC
FEBE
FABA

but the dropdownlist will display all for me. I need some solution for my code.

推荐答案

有几种方法可以做到这一点。一种方法是使用GroupBy,如:





There are couple of ways to do it. One way is to use GroupBy like:


var fal = db.Faculties
    .Select(m => new { m.FacultySName, m.FacultyID })
    .AsEnumerable()
    .GroupBy(x=>x.FacultySName)
    .Select(x=>x.First())
    .ToList();







另一种方式可以使用Where()with任何()如:






another way can be to use Where() with Any() like:

<pre lang="C#">var fal = db.Faculties
    .Select(m =&gt; new { m.FacultySName, m.FacultyID })
    .AsEnumerable()
    .ToList();

    fal = fal.Where(x => !fal.Any(y => (x.FacultySName == y.FacultySName)));</pre>


它为您提供了正确的值。根据您的样本数据,所有记录都是不同的(查看Id)。您应该修复数据库表中的数据,而不是指责查询。
It's giving you the correct values. According to your sample data all the records are distinct(look at the Id). Instead of blaming the query you should fix the data in your database table.


这篇关于Asp.net linq选择明确绑定到下拉列表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆