C# .NET Core 6.0 — IQueryable, OData и сопоставленная функция, вызванная из оператора LINQ, не может быть переведена [дуC#

Место общения программистов C#
Anonymous
C# .NET Core 6.0 — IQueryable, OData и сопоставленная функция, вызванная из оператора LINQ, не может быть переведена [ду

Сообщение Anonymous »

У меня возникли проблемы с OData, IQueryable и сопоставленными функциями, вызываемыми из операторов LINQ.
Это в функции (создание IQueryable) ):

Код: Выделить всё

IQueryable queryable =
_aContext.AView
.FromSqlRaw(sql).AsNoTracking()
.OrderBy(linqOrderByClause)
.Select(x => new AvailableView()
{
Afield1 = x.Afield1
Afield2 = ConvertSomething(x.Afield2)
});
Вот сопоставленная статическая функция ConvertSomething (ну, не совсем, я просто хочу показать, что эта функция может быть такой простой):

Код: Выделить всё

private static string ConvertSomething(string Afield2)
{
return Afield2;
}
Этот IQueryable выполняется в некотором созданном нами классе «постраничного ответа», и когда придет время выполнить IQueryable, вот часть кода:
Этот IQueryable выполняется в некотором классе «постраничного ответа», который мы создали, и когда придет время выполнить IQueryable, вот часть кода:
р>

Код: Выделить всё

ODataQuerySettings settings = new ODataQuerySettings();

// ODataQueryOptions options is passed into this function
if (options != null)
{
if (options.Filter != null)
{
queryable = options.Filter.ApplyTo(queryable, settings) as IQueryable;
}

if (options.OrderBy != null)
{
queryable = options.OrderBy.ApplyTo(queryable, settings) as IQueryable;
}

if (options.SelectExpand != null)
{
queryable = options.SelectExpand.ApplyTo(queryable, settings) as IQueryable;
}
}

List dataPage = queryable
.Skip(skip)
.Take(take)
.ToList(); 

Подробнее здесь: [url]https://stackoverflow.com/questions/78799902/c-sharp-net-core-6-0-iqueryable-odata-and-mapped-function-called-from-linq[/url]

Вернуться в «C#»