如何获取api调用的另一个api更新的最新值

问题描述 投票:0回答:1

我有一个与交易相关的问题。我有 2 个 API 应用程序。应用程序A中的API将调用应用程序B中的API。应用程序B中的API将更新一张表中的数据。更改应用程序B中完成的API,我们将再次通过linq在同一个表中获取数据。但数值不变。实际上,当我在 linq 代码中添加断点并检查 db.数据已经更新。请帮我解决一下。

应用程序 A 的 API 1

        [HttpGet]
        public async Task<ActionResult> Index()
        {
            var bookingInfo = await _unitOfWork.MasterBOFlightBookingRepository.Where(x => x.TravelmateId == "TF67271" && x.IsPrimaryPsgnr == true).FirstOrDefaultAsync();
            var originalName = bookingInfo.PassengerName; //it is will
            var client = new HttpClient();
            HttpResponseMessage response = await client.GetAsync("https://localhost:7175/WeatherForecast");
            if (response.IsSuccessStatusCode)
            {
                Console.WriteLine(response.Content.ReadAsStringAsync());
            }
            //re check value . Add break point here.
            bookingInfo = await _unitOfWork.MasterBOFlightBookingRepository.Where(x => x.TravelmateId == "TF67271" && x.IsPrimaryPsgnr == true).FirstOrDefaultAsync();
            var newName = bookingInfo.PassengerName;
            return Ok($"Change name from {originalName} to {newName}"); // it retun same name is Will
        }
来自应用程序 B 的

api 2

        [HttpGet(Name = "Get")]
        public async Task<IActionResult> Get()
        {
            var personGenerator = new PersonNameGenerator();
            var bookingInfo = await unitOfWork.MasterBOFlightBookingRepository.Where(x => x.TravelmateId == "TF67271" && x.IsPrimaryPsgnr == true).FirstOrDefaultAsync();
            bookingInfo.PassengerName = personGenerator.GenerateRandomFirstAndLastName();
            await unitOfWork.SaveChangeAsync();
            return Ok(bookingInfo); //completed update data with random name
        }
api asp.net-core transactions
1个回答
0
投票

我从api 1中发现了问题。因为默认情况下实体将被EF跟踪。所以只需添加

.AsNoTracking()
即可解决问题。谢谢!

© www.soinside.com 2019 - 2024. All rights reserved.