Для нашего проекта у нас есть таблица, где мы получаем все футбольные результаты за один игровой день. В зависимости от значения базы данных SQL отображается вход, в который пользователь может добавить результаты сопоставления. Когда мы нажимаем кнопку «Сохранить», происходит вставка в базу данных. По какой-то причине время от времени не все строки добавляются в базу данных.
[HttpPost("UpdateMatchDayScore")]
public async void UpdateMatchDayScore([FromBody]UpdateMatchDayScoreViewModel[] model)
{
var matchDayId = model[0].matchDayId;
var poolId = model[0].poolId;
RankingSearch rankingSearch = await _rankingService.CreateNewRanking(matchDayId, poolId);
foreach (var t in model)
{
_matchDayService.UpdateMatchDayScore(rankingSearch.RankingId,t.poolId, t.homeTeamId, t.awayTeamId, Int32.Parse(t.scoreHome),Int32.Parse(t.scoreAway), t.matchDayId);
}
_calculateRanking.CalculatePosition(rankingSearch.RankingId);
}
Это наша модель:
public class UpdateMatchDayScoreViewModel
{
public int poolId { get; set; }
public int homeTeamId { get; set; }
public int awayTeamId { get; set; }
public string scoreHome { get; set; }
public string scoreAway { get; set; }
public int matchDayId { get; set; }
}
Это наш репозиторий игровых дней:
public async void UpdateMatchDayScore(int poolId, int homeTeamId, int awayTeamId,
int scoreHome, int scoreAway,
int matchDayId)
{
using (var conn = _connector.OpenConnection())
{
await conn.QueryAsync<MatchDay>(StoredProcs.UpdateMatchScore,
new
{
pouleId = poolId,
awayTeamId = awayTeamId,
homeTeamId= homeTeamId,
scoreAway = scoreAway,
scoreHome = scoreHome,
matchDayId = matchDayId
}, CommandType.StoredProcedure);
}
}
Это наш игровой сервис:
public void UpdateMatchDayScore(int rankingId, int poolId, int homeTeamId, int awayTeamId, int scoreHome, int scoreAway, int matchDayId)
{
_calculateRanking.CalculateRankings(rankingId, matchDayId, awayTeamId, homeTeamId, scoreHome, scoreAway);
_matchDayRepository.UpdateMatchDayScore(poolId, homeTeamId, awayTeamId, scoreHome, scoreAway,
matchDayId);
}
Пример модели:
{
pouleId = 46273,
awayTeamId = 400069,
homeTeamId= 400002,
scoreAway = 2,
scoreHome = 4,
matchDayId = 12}
Мы выполнили некоторые математические расчеты и в общей сложности за один игровой день (который содержит 8 игр) открывается 41 соединение. Мы думаем, что можем сделать много за один раз? Может ли кто-нибудь помочь нам?