Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 动态生成LINQ_C#_Linq_Ef Database First - Fatal编程技术网

C# 动态生成LINQ

C# 动态生成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) ||

我有一个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) ||
                            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。迪纳米克。谢谢。正如我所期待的,这将很容易实现,因为我没有很多时间。谢谢。正如我所期待的,这将很容易实现,因为我没有很多时间。谢谢。正如我所期待的,这将很容易实现,因为我没有很多时间。谢谢,我就是这么想的