创建具有不同值的动态选择列表 LINQ

本文关键字:动态 选择 列表 LINQ 创建 | 更新日期: 2023-09-27 17:56:56

我需要Linq使用 C# 创建一个动态SelectList 下面是我的查询

ViewBag.net = new SelectList(db.nw.Where(m => m.client_id == 
ClientId).OrderBy(m => m.nw_ename), "nw_ename", "nw_ename");

这工作正常并返回数据,但它有一些重复的值,所以我需要使用 Distinct.在使用不同的语言时,我无法编写 LINQ 语句。下面是我尝试过的。

ViewBag.net = new SelectList((from m in db.np_nw_providers
                              where m.client_id == ClientId                                                                       
                              select m.nw_ename
                            ).Distinct()
                             .OrderBy(nw_enam => nw_enam), "m.nw_ename", "m.nw_ename");

运行此程序时出现错误

数据绑定:"System.String"不包含具有名称的属性 "米"。

我怎样才能实现相同的目标。

创建具有不同值的动态选择列表 LINQ

由于您只需要 nw_enam 属性,因此您可以使用

var items = db.nw.Where(m => m.client_id == ClientId)
                 .OrderBy(m => m.nw_enam)
                 .Select(i => i.nw_enam)
                 .Distinct();
ViewBag.net = new SelectList(items);

从构造函数中删除"m.nw_ename"参数SelectList

var query = (from m in db.np_nw_providers
             where m.client_id == ClientId                                                                       
             select m.nw_ename
            ).Distinct()
             .OrderBy(nw_enam => nw_enam);
ViewBag.net = new SelectList(query);