创建具有可变列名的LINQ语句

本文关键字:LINQ 语句 创建 | 更新日期: 2023-09-27 18:21:18

我正在为一个平面表创建一个树视图。我有一个linq查询,它从列返回所有不同的值

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

当然,这会返回一个带有起始节点的视图(假设为"Node1"、"Node2"answers"Node3")。

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

你是如何动态地做到这一点的?

我希望它像一样简单(很可能是,我不知道-LINQ新手!)

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

和往常一样,提前感谢你们这些乐于助人的人。

创建具有可变列名的LINQ语句

您可以使用表达式树来实现这一点,但它非常深入,我建议使用SQL作为Linq并不是您想要实现的最佳解决方案。

对此的SQL是:

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