Csharp/C#教程:ASP.NET MVC中的动态LINQ Group By Query分享


ASP.NET MVC中的动态LINQ Group By Query

我想知道如何最好地解决这个问题,因为我现在对我的视图中的硬编码列非常有用 – 我想知道如何扩展它以使列成为动态的。

控制器:

var dc = new DataContextDC(); return View(dc.items.Where(i=>i.IsPublic == true)); 

视图:

  s.GroupColumn)) { %>      

如上所述,目标是让用户选择哪个列替换上面的“GroupColumn”。 我想避免添加任何外部库等。

我看到使用reflection(慢,但完全动态)或者因为这是我的应用程序中的一个View,我只是为数据库中的每一列复制上面的代码,然后在其上放一个switch语句(快速,脏,但有效)

这可能是您希望使用C#Linq示例中包含的Linq Dynamic Query库的事情。 这样,您可以像这样编写查询:

 var groups = Model.GroupBy("SomeColumn, SomeOtherColumn") 

…如果您正在接受用户的列名,那么这将更容易管理 – 很可能您只有列名作为字符串,并且此库将自动将这些列解析为lambda表达式。 (如果您期望输入无效的可能性,则需要捕获ParseException )。

对于格式化键,您可以直接将其传递给Html.Encode方法,因为它的默认字符串表示forms类似于{ ID = 1, Name = Test } 。 如果这足够好,那么我会不管它,否则你将不得不使用Reflection来解析各个键属性和属性值。

编辑:您可以在任何地方使用该库,如果您下载样本,您将看到它只是一个源代码文件。

您可以使用Dynamic Linq:

https://weblogs.asp.net/scottgu/archive/2008/01/07/dynamic-linq-part-1-using-the-linq-dynamic-query-library.aspx

上述就是C#学习教程:ASP.NET MVC中的动态LINQ Group By Query分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/1011918.html

(0)
上一篇 2021年12月29日
下一篇 2021年12月29日

精彩推荐