Как передать лямбда-выражение в функцию hasdynamicproperty в OData? - PullRequest
0 голосов
/ 14 апреля 2020

Как я передаю ниже выражение в функции hasdynamicproperty. но я получаю сообщение об ошибке Unsupported Expression NodeType.

ucs.EntityType.HasDynamicProperties ((x) => new Dictionary () {{"HasPendingServiceOrder", x.ServiceOrders.Any (y => y.DateCancelled = = null && y.IdSoTypeResult == null)}});

Заранее спасибо.

1 Ответ

0 голосов
/ 15 апреля 2020

@ Раджат Я думаю, что использование метода HasDynamicProperties отключено. Этот метод применяется, когда вы строите модель Edm с использованием неконвенционального построителя моделей, напрямую вызывая текущие API-интерфейсы ODataModelBuilder.

Как и в документации, вы используете метод HasDynamicProperties для Добавьте свойство словаря динамического c свойства

Например, рассмотрим класс CLR, подобный приведенному ниже, со свойством IDictionary<string, object>

public class Customer
{
    public int Id { get; set; }
    public string Name { get; set; }
    public IDictionary<string, object> DynamicProperties { get; set; }
}

. Вы можете создать открытую сущность. введите следующее:

var customerEntity = builder.EntityType<Customer>();
customerEntity.HasKey(d => d.Id);
customerEntity.HasProperty(d => d.Name);
customerEntity.HasDynamicProperties(d => d.DynamicProperties);

ОБНОВЛЕНИЕ:

Для получения дополнительной информации о сборщиках моделей Edm посетите сайт документации OData здесь

...