Приведите результат к пользовательскому классу с помощью System.Linq.Dynamic.Core - PullRequest
0 голосов
/ 24 сентября 2018

Я пытаюсь типизировать результат для пользовательского класса с System.Linq.Dynamic.Core, но получаю исключение:

System.InvalidCastException: 'Невозможно привести объект типа' <> f__AnonymousType0`2 [System.Int32, System.Int32] 'для ввода' MyClass

Мой код:

class MyClass
{
    public int LangId { get; set; }
    public int GroupId { get; set; }
}

var fields = "new(LangId AS LangId,TranslateId AS GroupId)";
context.Table.Select(fields).ToDynamicListAsync<MyClass>();

Неужели я неправильно понял, что должен универсальный метод ToDynamicListAsync делать, или у меня есть другая ошибка в коде где-то еще?

Могу ли я сделать это?(введите dynamic[] результат до custom_object[]?)

Ответы [ 2 ]

0 голосов
/ 24 сентября 2018

Я думаю, вы также можете использовать этот код?

var rows = await context.Table.Select<MyClass>(fields).ToDynamicListAsync<MyClass>();

Этот метод расширения также определен в DynamicQueryableExtensions.cs

0 голосов
/ 24 сентября 2018

Я пытался сделать что-то странное с отражением, а потом наткнулся на решение:

var rows = await context.Table.Select(typeof(MyClass), fields).ToDynamicListAsync<MyClass>();

Надеюсь, это поможет кому-то еще.

...