c# core ef при выполнении хранимой процедуры не возвращаются значения в модель

129
10 декабря 2020, 12:30

проект webapi на C#.

описана модель данных, которую возвращает хранимая процедура

public class Price
{
    public int GoodId { get; set; }
    public int SupplierId { get; set; }
    public string Code { get; set; }
    public int Qnt { get; set; }
    public decimal Price { get; set; }
}

в контексте

public virtual DbSet<Price> Price { get; set; }

и описан ключ

builder.Entity<Price>().HasKey(x => new { x.GoodId, x.SupplierId, x.Code });

в контроллере выполняю хранимую процедуру

       var prices = _context.Price.FromSql($"EXECUTE [dbo].[GetPrice] @Code = '{Code}', @SupplierId = {SupplierId}, @GoodId = {GoodId}").ToList();
        if (prices == null)
        {
            return NotFound();
        }
        return prices;

проблема в том что объект prices пустой, точнее он != null, но количество строк = 0. При этом сама хранимая процедура возвращает минимум одну строку. с другими хранимыми процедурами проблем нет. как заставить правильно возвращать значение ?

Answer 1

спасибо за помощь, разобрался. одинарные кавычки были лишними. вот так все заработало:

var prices = _context.Price.FromSql($"EXECUTE [dbo].[GetPrice] @Code = {Code}, @SupplierId = {SupplierId}, @GoodId = {GoodId}").ToList();
    if (prices == null)
    {
        return NotFound();
    }
    return prices;
READ ALSO
Как узнать координаты точки, в которую ткнул пользователь? C#

Как узнать координаты точки, в которую ткнул пользователь? C#

Мне нужно узнать координаты точки, на которую нажал пользователь на форме

116
Передача колонки из DataGridView в ComboBox

Передача колонки из DataGridView в ComboBox

Такой вопросЕсть 2 разные таблицы DataGridView, условно DG1 и DG2, находящиеся на разных формах и есть форма с полями и комбобоксом для добавления данных...

125