使用可变列名创建LINQ语句

时间:2014-09-10 14:29:27

标签: c# linq

我正在为平面桌创建树视图。我有一个linq查询,它返回列

中的所有不同值
        public ActionResult Index()
    {
        var result = (from i in db.Items
                     select i.GeoName)
                     .Distinct()
                     .OrderBy(n => n);

        return View(result);
    }

这当然会返回一个包含我的开始节点的视图(假设可以说是节点1'节点2'节点3')。

然后我想让用户点击一个节点,并返回该列的内容。

你如何动态地这样做?

我希望它很简单(很可能,我不知道 - LINQ newb!)as:

        public ActionResult Index()
    {
        var result = (from i in db.Items
                     select i.passedInColumnName)
                     .Distinct()
                     .OrderBy(n => n);

        return View(result);
    }

与往常一样,先感谢有帮助的人。

1 个答案:

答案 0 :(得分:1)

你可以使用Expression Trees来做到这一点,但它非常深入,我建议使用SQL,因为Linq并不是你想要做的最好的解决方案。

这个的SQL将是:

SELECT DISTINCT
    passedInColumnName
FROM
    Items
WHERE
    GeoName = 'the geo name'
ORDER BY
    passedInColumnName