首页 > 解决方案 > 如何使用 Entity Framework Core 在同一个表中一次保存两个数据

问题描述

我正在创建推荐代码功能,用户将在注册时输入推荐代码,然后我从推荐代码中获取用户并在他的帐户上添加积分,同时我想为刚刚注册但我唯一的用户添加积分数据没有保存

我添加了添加积分的代码,其推荐代码正在使用另一个用户进行注册,还编写了为当前注册用户添加积分但无法同时为两个用户添加积分的代码

[HttpPost("register")]
public async Task<IActionResult> Register(UserForRegisterDto userForRegisterDto)
{
        if (!string.IsNullOrEmpty(userForRegisterDto.Email))
        {
            userForRegisterDto.Email = userForRegisterDto.Email.ToLower();

            if (await _repo.UserExists(userForRegisterDto))
                return BadRequest("User For this mail/contact already exists" );
        }

        if(!string.IsNullOrEmpty(userForRegisterDto.ContactNo))
        {
            if (await _repo.UserExists(userForRegisterDto))
                return BadRequest("User For this mail/contact already exists");
        }

        var userToCreate = _mapper.Map<User>(userForRegisterDto);
        var createdUser = await _repo.Register(userToCreate, userForRegisterDto.Password);

        int id = createdUser.Id;
        var userToReturn = _mapper.Map<UserForDetailedDto>(createdUser);

        if (userForRegisterDto.ReferralCode != null)
        {
            string message = "Congratulations you recieved 100 rs credit on your account";
            var getUserByRefCode = await _repo.GetUserByReferralCode(userForRegisterDto.ReferralCode);
            var getCurrentCreatedUser = await _repos.GetUser(id);

            if (getUserByRefCode != null)
            {
                ReferralStatus status = new ReferralStatus()
                {
                    Credits = 100,
                    OfferAddedOn = DateTime.UtcNow,
                    IsCreditsUsed = false,
                    ExpiresOn = DateTime.UtcNow.AddYears(1)
                };

                getUserByRefCode.ReferralStatus.Add(status);
                getCurrentCreatedUser.ReferralStatus.Add(status);
                await _repos.SaveAll();
                return Ok(new { userToReturn, message });
            }
        }

        return Ok(userToReturn);
}

标签: c#asp.net-mvc.net-coreef-code-firstentity-framework-core

解决方案


推荐阅读