Из вашего вопроса я могу предположить, что у вас также есть таблица [Positions]
? если нет, то откуда они?
То есть вам не обязательно иметь метку времени, верно? Непосредственно перед тем, как вы сохраните свою сущность, сделайте что-то вроде entity.List().Where(x => x.GameId == requestedGameId && x.PositionId == requestedPositionId)
Тогда, если вы получаете ноль, и он еще не существует, его безопасно отправить, если вы все-таки получаете объект, позиция уже занята.
Примечание: я не очень знаком с синтаксисом структуры сущностей, просто догадываюсь, как он будет выглядеть, но вы, вероятно, понимаете, когда я имею в виду мой псевдокод