linq 在界面中选择以获得更好的性能

b09cbbtk  于 2022-12-06  发布在  其他
关注(0)|答案(1)|浏览(138)

我正在尝试优化Web应用程序的行为。
我使用接口作为模型的基础,然后使用控制器,在控制器中使用来自此接口的方法。
为了将更多的数据加载到表中,我需要对继承接口的每个模型使用Select special(不是从数据库加载所有字段)。
下面是正在运行的代码:

public virtual JsonResult DbData(DataTableAjaxPostModel model)
{ 
    var datalist = dbSetForDbData.GetAndSortDataForAJAX(model, true, out int recordsFiltered, out int recordsTotal); //get and sort data

当我想要这样东西的时候:

public virtual JsonResult DbData(DataTableAjaxPostModel model)
{ 
    var dataList = dbSetForDbData.Select(SelectDbData).GetAndSortDataForAJAX(model, true, out recordsFiltered, out recordsTotal); //get and sort data

我想,我会用一些这样的想法:

Expression<Func<T, T>> SelectDbData = input=>IModel<T,TModel>.SelectForModel(input)

其中IModel<T,TModel>是我的接口。
在接口中我有这个方法:

public override FooModel SelectForModel(FooModel input)
{
    return new FooModel
    {
        Id = input.Id,
        Number = input.Number,
        ...
    };
}

但它不起作用(表达式无法翻译)。

ubof19bj

ubof19bj1#

不能打断表达式链,一切都是表达式
第一个

相关问题