私のC#プロジェクトには、データベースにオブジェクトが存在するかどうかを尋ね、存在しない場合はそれを作成するメソッドがあります。ここで、2 人のユーザーが同時に同じ質問をすると、両方とも null になるため、フローは db に保存されますが、2 つの重複がそれを行うことは不可能であるため、SQL 例外が発生します。どうすればこの問題に対処できますか?
ここに私のコードがあります:
var date = DateTime.UtcNow.Date;
var todayCelebPageView = _celebPageViewsRepo.GetAll().SingleOrDefault(d => d.iCelebId == celebId && d.dDate == date);
if (todayCelebPageView != null)
{
todayCelebPageView.iScore++;
_celebPageViewsRepo.Save();
}
else
{
todayCelebPageView = new MovliCelebPageView() {dDate = date, iCelebId = celebId, iScore = 1};
_celebPageViewsRepo.Add(todayCelebPageView);
_movliRepository.DbContext.Entry(todayCelebPageView).State = System.Data.EntityState.Added;
_celebPageViewsRepo.Save();
}