linq EF 6 Core IEEE802.0< T>动态对象投影

qfe3c7zg  于 11个月前  发布在  其他
关注(0)|答案(1)|浏览(116)

我已经挣扎了一天了,我不知道如何做到这一点:
我有一个IEQuery(分步生成的查询),我把它作为一个参数(就在where子句后面)。
基于列名列表我正在尝试创建一个动态选择子句。

public static IQueryable<T> AddSelectClause<T>(SearchDto criteria, IQueryable<T> queryable, ControllerStateManager stateManager)
    {
        if (criteria.SelectColumns != null)
        {
            var formattedColumns = string.Join(", ", criteria.SelectColumns);
            queryable.SelectMany(c => $"new({formattedColumns})");
        }

        return queryable;
    }

字符串
显然这是行不通的,没有异常只是返回所有列。
我试过这个:

queryable.Select(c => new { c.Id, c.Name });


Intellisense不喜欢这样的说法:T不包含ID的定义(名称也是如此)。
这就是我对Linq的知识深度,任何建议都将不胜感激

isr3a4wc

isr3a4wc1#

您应该能够用途:

queryable.SelectMany("new({formattedColumns})");

字符串

相关问题