Я новичок в ядре 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) =>
. Кто-нибудь знает, как это решить, и в чем проблема ??