我需要在C#中使用SelectList
创建动态Linq
,这是我的查询
ViewBag.net = new SelectList(db.nw.Where(m => m.client_id ==
ClientId).OrderBy(m => m.nw_ename), "nw_ename", "nw_ename");
这样可以正常工作并返回数据,但它有一些重复的值,所以我需要使用Distinct
。虽然使用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");
运行时我收到错误
DataBinding:'System.String'不包含具有名称的属性 'M'。
我怎样才能达到同样目的。
答案 0 :(得分:2)
由于您只想要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);
答案 1 :(得分:1)
从"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);