В C# Как мне изменить синтаксис метода, когда я хочу переместить его из моего контроллера в файл репозитория? - PullRequest
0 голосов
/ 02 мая 2020

Я пытаюсь создать метод в файле репозитория, который будет вызывать вещи из моих файлов запросов и моделей, я пытался устранить ошибки с помощью директивы, он избавился от большинства ошибок, но у меня все еще есть две постоянные , Ранее этот метод использовался в моем контроллере, и, поскольку я хочу переместить его в папку репо, я предполагаю, что синтаксис несколько изменится. Я новичок в C#, и я не уверен, как к этому подойти.

Ошибка 1 'GetSportsView': я получаю сообщение об ошибке "не все пути кода возвращают значение"

Ошибка 2 'QueryView>': я получаю "объект не содержит определения для" QueryView "и нет доступного метода расширения (отсутствует директива или ссылка на сборку)"

Пожалуйста, смотрите код ниже

 public class SportsRepository : ISportsRepository
    {
        private readonly IHttpConnectionManager httpConnectionManager;
        private readonly string sportsGrandViewUrl;
        private readonly Guid playerId;
        private SearchCriteria searchCriteria;
        private object sportsGameRepository;

         public SportsRepository(taDomainCommunicationSettings taDomainCommunicationSettings, IHttpConnectionManager httpConnectionManager)
        {
            this.sportsGrandViewUrl = taDomainCommunicationSettings.SportsGrandViewUrl;
            this.httpConnectionManager = httpConnectionManager;
        }

        public async Task<IActionResult> GetSportsView(Guid playerId, [FromQuery]SearchCriteria searchCriteria)
        {
            var query = new GetSportsTransactionsQuery(playerId, searchCriteria);
            var result = await this.sportsGameRepository.QueryView<IEnumerable<SportsTransactionModel>>(query);
        }

        public Task<T> QueryView<T>(IAPIQuery qry)
        {
            return this.httpConnectionManager.PostInQueryWrapperAsync<T>(this.sportsGrandViewUrl, qry);
        }
    }
}

Как мне подходить к стилю синтаксиса, чтобы он работал так же, как он работал в моем контроллере?

1 Ответ

0 голосов
/ 02 мая 2020

Похоже, вы перепутали код контроллера с репозиторием. Так как FromQuery используется с параметрами запроса, он не должен использоваться здесь в репозитории.

Когда я впервые начал заниматься веб-разработкой с использованием шаблона репозитория, эта статья мне очень помогла: https://chsakell.com/2015/02/15/asp-net-mvc-solution-architecture-best-practices/.

Обычно ваш контроллер должен вызывать службу, и ваша служба будет взаимодействовать с вашим хранилищем. Это помогает сохранять модульность кода и логики c.

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