Я предоставил следующий запрос (упрощенная версия), чтобы вернуть IQueryable из моей службы:
var query =
(from item in _entityRepository.DbSet()
where
MyCondition
orderby Entity.EntityID descending
select new DTOModel
{
Id = Entity.EntityID,
...,
//My problem is here, when I trying to call a function into linq query:
//Size = Entity.IsPersian ? (Entity.EntitySize.ConvertNumbersToPersian()) : (Entity.EntitySize)
//Solution (1):
//Size = ConvertMethod1(Entity)
//Solution (2):
//Size = ConvertMethod2(Entity)
});
А также у меня есть следующие коды в моем классе обслуживания в соответствии с моим запросом:
//Corresponding to solution (1):
Func<Entity, string> ConvertMethod1 = p => (p.IsPersian ? p.EntitySize.ConvertNumbersToPersian() : p.EntitySize);
//Corresponding to solution (2):
Expression<Func<Entity, string>> ConvertMethod2 = (p) => (p.IsPersian ? p.EntitySize.ConvertNumbersToPersian() : p.EntitySize);
И я видел следующие ошибки:
Сгенерированная ошибка, соответствующая решению (1):
Тип узла выражения LINQ Invoke не поддерживается в LINQ to Entities.
Сгенерированная ошибка, соответствующая решению (2):
Это ошибка компиляции: ожидаются методы, делегат или событие
Большое спасибо за любую расширенную помощь.