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