明显不工作(ASP 很棒的控制)

Distinct not working (ASP Awesome control)

我正在使用 JSON 为下拉列表发送一个 ASP 很棒的组合框条目。

代码如下:

 public ActionResult GetEngineerData()
    {
        var items = db.Results.Where(x=>x.Engineer != null).Select(o=>new KeyContent(o.Engineer,o.Engineer)).Distinct()
                    

        return Json(items);
    }

这没有提供不同的列表,而是有很多重复项。 我也试过这样做(在 Select KeyContent 代码之前定位不同):

public ActionResult GetEngineerData()
        {
            var items = db.Results.Where(x=>x.Engineer != null).Distinct().Select(o=>new KeyContent(o.Engineer,o.Engineer))
                    

        return Json(items);
    }

感谢您的帮助。

创建 new KeyContent 时,您会得到 distinct 个实例 - 不同的对象,即使它们的值相同。
这就是为什么你的第一个代码不起作用。

在你的第二个中,你检查 Results 是否不同,并且对于每个不同的,你 select Engineer

如果你想要不同的工程师,试试这个:

     public ActionResult GetEngineerData()
     {
        var items = db.Results
            .Where(x=>x.Engineer != null)   //eliminate empty values
            .Select(x=>x.Engineer)          //select only the engineer-item
            .Distinct()                     //remove _duplicate engineers_ from the list
            .Select(x=>new KeyContent(x,x));//for each unique engineer, create a KeyContent instance
                    

        return Json(items);
    }