C# 动态生成LINQ
我有一个GetX(DataTableParameters模型)函数,其中model.Order包含列(可以是1(Id)、2(名称)等)和Dir(可以是'asc'或'desc')。然后我有一个LINQ查询,我想根据模型值动态生成OrderByDescending或OrderBy和r=>r.Id或r=>r.NameC# 动态生成LINQ,c#,linq,ef-database-first,C#,Linq,Ef Database First,我有一个GetX(DataTableParameters模型)函数,其中model.Order包含列(可以是1(Id)、2(名称)等)和Dir(可以是'asc'或'desc')。然后我有一个LINQ查询,我想根据模型值动态生成OrderByDescending或OrderBy和r=>r.Id或r=>r.Name DbContext.Users.Where(r => r.FirstName.Contains(model.Search.Value) ||
DbContext.Users.Where(r => r.FirstName.Contains(model.Search.Value) ||
r.LastName.Contains(model.Search.Value) ||
r.Email.Contains(model.Search.Value))
.**OrderByDescending(r => r.Id)**.Skip(model.Start).Take(model.Length);
这能做到吗?如果是这样的话,有人能给我指出正确的方向吗。感谢您的帮助。使用动态Linq,有几个库可以帮助您使用它。我正在使用这个,它看起来很棒,在这里查看更多信息
var result = myQuery
.OrderBy("Field1 asc")
.Select("new (Field1, Field2)");
请查看(旧库的文档)以获得良好的概述 使用动态Linq,有几个库可以帮助您使用它。我正在使用这个,它看起来很棒,在这里查看更多信息
var result = myQuery
.OrderBy("Field1 asc")
.Select("new (Field1, Field2)");
请查看(旧库的文档)以获得良好的概述 使用动态Linq,有几个库可以帮助您使用它。我正在使用这个,它看起来很棒,在这里查看更多信息
var result = myQuery
.OrderBy("Field1 asc")
.Select("new (Field1, Field2)");
请查看(旧库的文档)以获得良好的概述 使用动态Linq,有几个库可以帮助您使用它。我正在使用这个,它看起来很棒,在这里查看更多信息
var result = myQuery
.OrderBy("Field1 asc")
.Select("new (Field1, Field2)");
请查看(旧库的文档)以获得良好的概述 看起来您正在使用数据表。我有相同的场景,并编写了一些代码,利用提供分页、可排序的数据表JSON数据 用法如下所示:
[HttpPost]
public JsonResult GetJson(DataTablesParam param)
{
using (var context = new SalesContext())
{
return context.Sales
.TrustedSortToPagedList(param.ToPagingCriteria())
.Select(s => new SaleViewModel(s))
.ToDataTableResult(param.Draw);
}
}
在javascript中,我将此参数包括在DataTable配置中:
ajax: {
contentType: 'application/json; charset=utf-8',
dataType: 'json',
url: "@Url.Action("GetJson")",
type: "POST",
data: function(d) {
// add extra query parameters here
d.startDate = $("#startDate").val();
d.endDate = $("#endDate").val();
return JSON.stringify(d);
},
},
完整的代码可以在这里找到。看起来您正在使用DataTables。我有相同的场景,并编写了一些代码,利用提供分页、可排序的数据表JSON数据 用法如下所示:
[HttpPost]
public JsonResult GetJson(DataTablesParam param)
{
using (var context = new SalesContext())
{
return context.Sales
.TrustedSortToPagedList(param.ToPagingCriteria())
.Select(s => new SaleViewModel(s))
.ToDataTableResult(param.Draw);
}
}
在javascript中,我将此参数包括在DataTable配置中:
ajax: {
contentType: 'application/json; charset=utf-8',
dataType: 'json',
url: "@Url.Action("GetJson")",
type: "POST",
data: function(d) {
// add extra query parameters here
d.startDate = $("#startDate").val();
d.endDate = $("#endDate").val();
return JSON.stringify(d);
},
},
完整的代码可以在这里找到。看起来您正在使用DataTables。我有相同的场景,并编写了一些代码,利用提供分页、可排序的数据表JSON数据 用法如下所示:
[HttpPost]
public JsonResult GetJson(DataTablesParam param)
{
using (var context = new SalesContext())
{
return context.Sales
.TrustedSortToPagedList(param.ToPagingCriteria())
.Select(s => new SaleViewModel(s))
.ToDataTableResult(param.Draw);
}
}
在javascript中,我将此参数包括在DataTable配置中:
ajax: {
contentType: 'application/json; charset=utf-8',
dataType: 'json',
url: "@Url.Action("GetJson")",
type: "POST",
data: function(d) {
// add extra query parameters here
d.startDate = $("#startDate").val();
d.endDate = $("#endDate").val();
return JSON.stringify(d);
},
},
完整的代码可以在这里找到。看起来您正在使用DataTables。我有相同的场景,并编写了一些代码,利用提供分页、可排序的数据表JSON数据 用法如下所示:
[HttpPost]
public JsonResult GetJson(DataTablesParam param)
{
using (var context = new SalesContext())
{
return context.Sales
.TrustedSortToPagedList(param.ToPagingCriteria())
.Select(s => new SaleViewModel(s))
.ToDataTableResult(param.Draw);
}
}
在javascript中,我将此参数包括在DataTable配置中:
ajax: {
contentType: 'application/json; charset=utf-8',
dataType: 'json',
url: "@Url.Action("GetJson")",
type: "POST",
data: function(d) {
// add extra query parameters here
d.startDate = $("#startDate").val();
d.endDate = $("#endDate").val();
return JSON.stringify(d);
},
},
完整的代码在此中可用。您试用过吗?它几乎与您键入的内容完全相同。每个LINQ函数都返回一个结果。您不必将所有这些方法都链接起来,只需将
Where()
的结果放入一个变量中,应用所需的任何OrderBy
方法,然后继续使用OrderBy
的结果,并应用剩余的方法ID,该方法ID遇到了许多我想要避免的if或switch情况。您尝试过吗?它几乎与您键入的内容完全相同。每个LINQ函数都返回一个结果。您不必将所有这些方法都链接起来,只需将Where()
的结果放入一个变量中,应用所需的任何OrderBy
方法,然后继续使用OrderBy
的结果,并应用剩余的方法ID,该方法ID遇到了许多我想要避免的if或switch情况。您尝试过吗?它几乎与您键入的内容完全相同。每个LINQ函数都返回一个结果。您不必将所有这些方法都链接起来,只需将Where()
的结果放入一个变量中,应用所需的任何OrderBy
方法,然后继续使用OrderBy
的结果,并应用剩余的方法ID,该方法ID遇到了许多我想要避免的if或switch情况。您尝试过吗?它几乎与您键入的内容完全相同。每个LINQ函数都返回一个结果。您不必将所有这些函数都链接起来,只需将Where()
的结果放入一个变量中,然后应用您想要的任何OrderBy
方法,然后继续使用OrderBy的结果,并应用剩余的方法ID,该方法遇到了很多我想避免的if或开关情况。我就是这样做的,但想要一个更简单的解决方案。谢谢你,我就是这样做的,但我想要一个更简单的解决方案。谢谢你,我就是这样做的,但我想要一个更简单的解决方案。谢谢你,我就是这样做的,但我想要一个更简单的解决方案。谢谢你,这真的很好,等我有机会的时候,我会像这样重新实现它,现在我就拿Linq。迪纳米克。谢谢。这真是太好了,等我有机会的时候,我会像这样重新实现它,现在我就拿Linq。迪纳米克。谢谢。这真是太好了,等我有机会的时候,我会像这样重新实现它,现在我就拿Linq。迪纳米克。谢谢。这真是太好了,等我有机会的时候,我会像这样重新实现它,现在我就拿Linq。迪纳米克。谢谢。正如我所期待的,这将很容易实现,因为我没有很多时间。谢谢。正如我所期待的,这将很容易实现,因为我没有很多时间。谢谢。正如我所期待的,这将很容易实现,因为我没有很多时间。谢谢,我就是这么想的