我正在尝试优化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,
...
};
}
但它不起作用(表达式无法翻译)。
1条答案
按热度按时间ubof19bj1#
不能打断表达式链,一切都是表达式
第一个