Выражение LINQ не удалось перевести при использовании OData Framework с DTO.C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Выражение LINQ не удалось перевести при использовании OData Framework с DTO.

Сообщение Anonymous »

Я новичок в Odata и EntityFramework и пытаюсь использовать OData с DTO. Моя модель сущности определена примерно так:

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

    public Orders{
public String OrderId{get; set;}
public List? Items{get;set;}
}

public Item{
public String ItemId{get; set;}
public String ItemType{get; set;}
}
И мой запрос выглядит примерно так:

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

    _db.Orders.Select(o => new OrdersDTO{
OrderId = o.OrderId,
// This works if I dont register Item DTO in my Odata EDM model
// Even if I comment this I still get the same error
Items = o.Items.Select(i => new Item
{ItemId = i.ItemId,
ItemType = i.ItemType}).ToList()
)
}
Теперь, даже если я не упомянул элемент в своем выборе запроса, он выдает мне ошибку: Ошибка создания строки запроса:

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

Error creating query string: The LINQ expression '$it => new SelectAll{
Model = __TypedProperty_2,
Instance = $it,
UseInstanceForProperties = True
}
В идеале мне бы хотелось, чтобы Odata динамически создавала SQL-запросы, извлекающие только необходимые данные. Как и в случае с прямыми объектами.
Я попробовал https://github.com/dotnet/efcore/issues/27460 одно из решений, в котором говорится, что распространение значения null установлено как ложное, но Я все еще сталкиваюсь с той же ошибкой.
Я чувствую, что есть что-то, что я принципиально не понимаю в том, как необходимо определять DTO. Любая помощь, подсказки или рекомендации будут очень признательны.

Подробнее здесь: https://stackoverflow.com/questions/793 ... -with-dtos
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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