Entity Framework Core и FOR JSON AUTO - PullRequest
0 голосов
/ 21 марта 2019

Поддерживает ли EF Core FOR JSON AUTO для SQL Server? У меня есть представления в моей базе данных, и я хотел бы запросить представление (при фильтрации с предложением WHERE) и вернуть мне данные как FOR JSON AUTO.

Я хотел бы сделать что-то вроде этого:

string json = context.UsersView.Where(x => x.Id == userId).ForJson();
UsersViewModel model = JsonConvert.DeserializeObject<UsersViewModel>(json);

Или, однако, синтаксис будет идти. Дело в том, что я хотел бы использовать предложение SQL Server FOR JSON AUTO. Это существует? Я включил бы в определение моего представления FOR JSON AUTO, но это мне не помогло, так как я не могу добавить предложение WHERE к представлению, если оно определено таким образом. Кроме того, если мне не хватает лучшего способа сделать это, пожалуйста, не стесняйтесь. Но помните, я хочу, чтобы модель POCO имела вложенные объекты.

Я не могу найти чистый способ сделать это, хотя это было бы чрезвычайно полезно, потому что мои представления довольно сложны, и было бы неплохо просто передать результат FOR JSON в модель POCO с ее вложенными объектами и т. Д.

1 Ответ

0 голосов
/ 22 марта 2019

Очевидно, что нет чистого способа сделать это с помощью Entity Framework Core. В итоге я использовал хранимую процедуру, где я передаю параметр фильтра и выбираю данные для json.

Это работает так, как задумано, просто хотелось бы, чтобы EF включил форматирование. Это было бы легким дополнением, кажется.

...