Как устранить ошибку HTTP 500 с помощью QueryAsyn c? - PullRequest
0 голосов
/ 26 мая 2020

Я новичок в ядре asp. net и делаю простой веб-сайт, на котором вы можете купить билеты на все виды мероприятий. Я использую dapper для получения данных из моей базы данных. Одна из вещей, которые я делаю, - это страница, полная событий (из базы данных). Я создал evenementrepository для этого (evenement = dutch for event):

public async Task<IEnumerable<Evenement>> GetAllAsync()
    {
        var EventType = new Dictionary<int, Evenement>();

        using (var conn = GetOpenConnection())
        {
            var sql =
                @"SELECT evn.*, evh.* FROM evenement evn LEFT JOIN evenementhouder evh ON evn.EvenementhouderID_FK = evh.Id";

            var results = await conn.QueryAsync<Evenement, Evenementhouder, Evenement>(sql, (evenement, evenementhouder) =>
             {
                 if (!EventType.TryGetValue(evenement.Id, out var evn))
                 {
                     evenement.EvenementhouderID_FK = evenementhouder;
                     EventType.Add(evenement.Id, evn = evenement);
                 }

                 return evn;
             });


        }

        return EventType.Values.ToList();
    }

Я также сделал репозитории для Evenement и Evenementhouder:

public class Evenement : ITicketPointEntity
{
    public int Id { get; set; }
    public Evenementhouder EvenementhouderID_FK { get; set; }
    public string Evenementnaam { get; set; }
    public string Beschrijving { get; set; }
    public string Plaats { get; set; }
    public string Straat { get; set; }
    public int Huisnummer { get; set; }
    public string Postcode { get; set; }
    public int Minimale_Leeftijd { get; set; }
}

public class Evenementhouder : ITicketPointEntity
{
    public int Id { get; set; }
    public string Username { get; set; }
    public string Email { get; set; }
    public string Password { get; set; }
}

This GetAllAsync задача вызывается моим resultscontroller:

public class ResultatenController : TicketPointController
{
    private readonly ILogger _logger;
    private readonly EvenementRepository _repo;

    public ResultatenController(EvenementRepository repo, ILoggerFactory logFactory)
    {
        _repo = repo;
        _logger = logFactory.CreateLogger<EvenementController>();
    }

    public async Task<IActionResult> Index()
    {
        var resultatenViewModel = new ResultatenViewModel
        {
            Evenementen = await _repo.GetAllAsync()
        };
        return View(resultatenViewModel);
    }
}

Когда я хочу go перейти на страницу со всеми результатами, я получаю эту базовую c HTTP-ошибку 500. Я начал отладку, и она похоже, что ошибка возникает при вызове var results = await conn.QueryAsync<Evenement, Evenementhouder, Evenement>(sql, (evenement, evenementhouder) =>. Кто-нибудь знает, как это решить, и в чем проблема ??

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