Хранимая процедура сопоставления с несколькими наборами результатов, возвращенными в EF Core - PullRequest
1 голос
/ 04 июля 2019

В настоящее время я перемещаю уже установленный веб-сайт из старого ASP.NET в ASP.NET Core 2.2. База данных является общей базой данных для других платформ и также создана, поэтому я не могу просто ничего изменить из нее.

Я столкнулся с этой проблемой, когда мне пришлось вызывать хранимую процедуру из EF Core, где эта хранимая процедура возвращает 3 набора результатов. Результирующий набор хранимой процедуры выглядит следующим образом.

Таблица 1

ColumnName1 | ColumnName2 | SomeColumn | AndMoreColumn
_______________________________________________________
Value1      | value 2     | value 3    | Value 4

Таблица 1

Column1    | Column2
______________________
value1     | value 2

Таблица 3

Column1
Value1

Таблица 1 и таблица 2 связаны друг с другом. Эта таблица всегда будет возвращать 1 строку в таблице 1, а таблица 2 может возвращать несколько строк, когда таблица 3 является статической.

Теперь мой вопрос. Как мне сопоставить этот набор результатов с построителем модели EF Core Query? Я хочу сопоставить его с именем столбца, поскольку хочу сделать имена столбцов более понятными. Вот пример, который у меня не получился:

modelBuilder.Query<MyModel>(a => 
{
    a.Property(b=>b.ModelId).HasColumnName("ColumnName1");
    a.Property(b=>b.ModelName).HasColumnName("ColumnName2");
    ...
});

но, к сожалению, вышеприведенное отображение не сработало. Специально для 2-го стола.

1 Ответ

1 голос
/ 04 июля 2019

Во-первых, результатом хранимой процедуры является не таблица, я имею в виду таблицу пользователя.

Итак, я думаю, что есть два возможных решения вашего вопроса:

  1. Работа с чистым ADO.NET, запуск чтения данных и приведение результата к моделям результатов

  2. Использование внешнего подхода из EF Core

Для пункта 1, пожалуйста, прочитайте этот вопрос: Отображение хранимой процедуры запроса EF Core к типам

Для пункта 2 прочтите этот вопрос: Работа с несколькими наборами результатов в .netcore

Также вы можете прочитать эту проблему: Поддержка нескольких наборов результатов # 8127

Дайте мне знать, если этот ответ полезен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...