SelectMany в столбце Json Array ⇐ C#
-
Anonymous
SelectMany в столбце Json Array
В моем проекте у меня есть таблица со столбцом массива Json
Таблица А
Id, Col1, Col2, JsonArrayCol, Col3 123, Вал1, Вал2, Json*, Вал3 Json*:
[ { «Тип»: «Стандартный тип», «Сумма»: «1» // намного больше свойств }, { «Тип»: «Стандартный тип», «Сумма»: «2» }, { «Тип»: «ДругойТип», «Сумма»: «3» }, { «Тип»: «СуперТип», «Сумма»: «4» }, ] В некоторых стандартных сценариях нам нужно соединить строки из таблицы с объектом из фильтра массива json по типу.
пр. Если для фильтра установлены значения «StandardType» и «SuperType», результат должен быть следующим:
123, Val1, Val2, JsonValues («Тип»: «StandardType», «Количество»: «1»), Val3 123, Val1, Val2, JsonValues («Тип»: «StandardType», «Количество»: «2»), Val3 123, Val1, Val2, JsonValues («Тип»: «Супертип», «Количество»: «4»), Val3 Разбор массива JSON для модели .NET Core приводит к пустому набору Основываясь на ответе в этой теме, в качестве первого шага к достижению моих требований я пытался использовать SelectMany (LinqToSQL):
var searchContacts = context.SearchContacts .SelectMany(x => x.Numbers) .К списку(); К сожалению, я получаю сообщение об ошибке:
Не удалось перевести выражение LINQ «x => x.Numbers». Или перепишите запрос в форме, которую можно перевести, или переключитесь на оценка клиента явно путем вставки вызова AsEnumerable, «AsAsyncEnumerable», «ToList» или «ToListAsync». Видеть https://go.microsoft.com/fwlink/?linkid=2101038 для получения дополнительной информации.'
В моем проекте у меня есть таблица со столбцом массива Json
Таблица А
Id, Col1, Col2, JsonArrayCol, Col3 123, Вал1, Вал2, Json*, Вал3 Json*:
[ { «Тип»: «Стандартный тип», «Сумма»: «1» // намного больше свойств }, { «Тип»: «Стандартный тип», «Сумма»: «2» }, { «Тип»: «ДругойТип», «Сумма»: «3» }, { «Тип»: «СуперТип», «Сумма»: «4» }, ] В некоторых стандартных сценариях нам нужно соединить строки из таблицы с объектом из фильтра массива json по типу.
пр. Если для фильтра установлены значения «StandardType» и «SuperType», результат должен быть следующим:
123, Val1, Val2, JsonValues («Тип»: «StandardType», «Количество»: «1»), Val3 123, Val1, Val2, JsonValues («Тип»: «StandardType», «Количество»: «2»), Val3 123, Val1, Val2, JsonValues («Тип»: «Супертип», «Количество»: «4»), Val3 Разбор массива JSON для модели .NET Core приводит к пустому набору Основываясь на ответе в этой теме, в качестве первого шага к достижению моих требований я пытался использовать SelectMany (LinqToSQL):
var searchContacts = context.SearchContacts .SelectMany(x => x.Numbers) .К списку(); К сожалению, я получаю сообщение об ошибке:
Не удалось перевести выражение LINQ «x => x.Numbers». Или перепишите запрос в форме, которую можно перевести, или переключитесь на оценка клиента явно путем вставки вызова AsEnumerable, «AsAsyncEnumerable», «ToList» или «ToListAsync». Видеть https://go.microsoft.com/fwlink/?linkid=2101038 для получения дополнительной информации.'
Мобильная версия