ветерок - помогите начать

0

Я работаю над aС#/mvc/breeze/angular project в visual studio, и меня попросили создать совершенно новые функции. В настоящее время у нас есть хранимая процедура, и она используется в совершенно другом месте для извлечения данных, и теперь мы переносим этот "рабочий лист", который использует эту хранимую процедуру для этого проекта С#/mvc/breeze/angular. Хранимая процедура возвращает обычный набор записей - выберите * из mytable... он выполняет несколько сложных действий (а не только базовые запросы), чтобы вернуть записи, хотя...

До сих пор я вижу в проекте С#/mvc/breeze/angular, они используют только хранимые процедуры двумя способами: 1 путь - это если хранимая процедура возвращает одно значение, а другой способ - если он возвращает несколько выборок, подобных этому: выберите * из таблицы1 выберите * из таблица2 выберите * из таблица3.

Мой вопрос: как мне начать работу над моим проектом (добавив его в этот...) - могу ли я использовать существующую хранимую процедуру или есть способ интегрировать ее с бризом, чтобы лишить необходимости хранимой процедуры.,

Я вижу, что у них есть рабочий лист таблицы с настройками (с фильтрами) в этом проекте С#/mvc/breeze/angular, и я не могу точно следовать ему, но, похоже, он не попадает в сохраненный процесс. Я новичок в мелочах.

Теги:
breeze

1 ответ

0
Лучший ответ

Если я правильно понимаю, вы хотите, чтобы бриз извлекал данные, созданные хранимой процедурой. Помогает ли этот ответ?

Короче говоря, вы можете определить класс объекта, который вы будете извлекать из хранимой процедуры:

internal class RvRDetail
{
    public string DistrictName { get; set; }
    public string EmployeeName { get; set; }
    public string SiteName { get; set; }
    public System.DateTime CalendarDate { get; set; }
    public string RevenueCategoryName { get; set; }
    public decimal TotalRepayment { get; set; }
    public decimal TotalRevenue { get; set; }
}

Затем в контроллере просто запустите свою хранимую процедуру так же, как и без ведома:

[BreezeController]
public class SeasonlessRvRController : BreezeAbstractApiController
{

    // GET: breeze/SeasonlessRvR/RvRData
    [HttpGet]
    public object RvRData(string districtList="", string showAllPeriods="0")
    {
        var returnData = _dbContextProvider.Context.Database
            .SqlQuery<RvRDetail>("SELECT * from dbo.udf_SeasonlessRvR(@DistrictList, @ShowAllPeriods)",
                            new SqlParameter("@DistrictList", districtList),
                            new SqlParameter("@ShowAllPeriods", showAllPeriods))
            .ToList();
        return returnData;
    }
}

Breeze вернется через диспетчер объектов, когда вы запрашиваете конечную точку

Поскольку ветерок будет возвращать только обычные объекты Javascript, вы также можете сделать это с помощью конечной точки api без бризонта, используя $ http.

Если вам нужны все колокола и свистки (кэширование, автоматическая проводка до других объектов), вам нужно будет создать представление и включить его в свою модель, например таблицу, с соответствующими внешними ключами и свойствами навигации.

Надеюсь это поможет.

  • 0
    да, но как мне это сделать? Я не вижу бриза, использующего хранимые процедуры напрямую - только классы / модели, представляющие таблицы, и отображения / классы, представляющие отношения. я также вижу еще один вспомогательный класс, который использует несколько очень простых операторов выбора непосредственно в коде. если я пишу код на C #, чтобы использовать мою хранимую процедуру, то как насчет этого бриз? @beartrums
  • 0
    @LisaSolomon, настройте это как пример в связанном посте. В этом примере класс определяется как внутренний класс, а действие определяется в breeze api controller. Затем я могу использовать стандартные методы запросов к ним и обращаться к ним через entityManager, просто нажав конечную точку .from('RvRData') , возвращая мой массив объектов RvRDetail. Если вам нужны навигационные свойства и дальнейшая интеграция в модель, а не только в данные, то вам, возможно, придется попытаться определить ее как представление, которое вы можете рассматривать точно так же, как таблицу в модели.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню