Проблема вызова npgsql хранимой функции базы данных postgresql 10.10 с postgis из EF Core 3.0 - PullRequest
0 голосов
/ 02 декабря 2019

У меня есть функция с входным параметром json в текстовом формате, я выполняю приведение к json внутри себя. Эта функция возвращает еще один Json в текстовом формате. Когда я вызываю эту функцию из PGAdmin 4 с помощью другого функционального теста, она работает нормально, но если я вызываю эту функцию из EF Core 3.0, я получаю эту ошибку:

Error Name: invalid input syntax for type json  
Error State: 22P02  
Error Context: JSON data, line 1: {"ErrorMsg":"Error Name: type "geometry...  
PL/pgSQL function miguel.searchjson(text) line 87 at assignment  
SQL statement "SELECT * from miguel.searchJSON(param)"
PL/pgSQL function miguel.test_searchjson() line 19 at SQL statement

С другими функциями без Json, которые возвращают текстУ меня нет проблем в исполнении. Я так называю свою функцию:

var res = _context.JSResultSearch.FromSqlRaw("SELECT miguel.test_searchjson() as jsresult");

Честно говоря, я уже отчаялся в этой теме. Буду благодарен за любую помощь.

1 Ответ

0 голосов
/ 02 декабря 2019

Кажется, что вы пытаетесь вызвать функцию, которая возвращает простой текст, и ожидаете, что EF Core зачитает ее для вас (хотя это не ясно, поскольку вы вызываете FromSqlRaw для JSResultSearch, и мы нене знаю что это). EF Core не поддерживает загрузку простых значений, не связанных с сущностью, см. https://github.com/aspnet/EntityFrameworkCore/issues/11624.

Однако EF Core не будет иметь здесь большого значения, кроме простого перехода на ADO.NET или использования Dapper.

...