Получить данные из хранимой процедуры в модель EF6 MVC - PullRequest
0 голосов
/ 15 апреля 2019

Я читал, как использовать хранимые процедуры в EF6

https://www.entityframeworktutorial.net/entityframework6/code-first-insert-update-delete-stored-procedure-mapping.aspx

Но это не показывает, как я могу на самом деле получить данные из процедуры в модель.

Например, у меня есть этот запрос

CREATE PROCEDURE Abastecimentos_Select 

AS
BEGIN
    SELECT * FROM OpenQuery(MACPAC, 'SELECT RD6001 as Referencia, RD6002 as UAP, RD6030 as QTD_AB_PDP_W01 FROM D805DATPOR.TRP060D WHERE RD6001 not like ''%OP%'' and RD6001 not like ''%PT%'' ')
END

Я хочу заполнить его моделью, свойства - это таблицы, возвращенные из процедуры

public class Abastecimentos
{
    public string Referencia { get; set; }
    public string UAP { get; set; }
    public float QTD_AB_PDP_W01 { get; set; }
}

Я пытался использовать FluentAPI, но нет опции выбора

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
    modelBuilder.Entity<Abastecimentos>().MapToStoredProcedures(a => a.//No select)
}

Я использую подход Code First.

1 Ответ

0 голосов
/ 28 мая 2019

Я решил использовать Dapper при отображении SP в модели

public async Task OnGetListAsync () {IDbConnection con = new SqlConnection (_config.GetConnectionString ("DefaultConnection"));

    var query = await con.QueryAsync<ConsumoViewModel>("GetConsumoCalculado", commandType: CommandType.StoredProcedure);

    return new JsonResult(query.ToList());
}
...