同时运行两个连接同一数据库的应用时,数据库无法实时刷新的问题求助
同时运行两个连接同一数据库的应用时,数据库无法实时刷新的问题求助
大家好,我遇到了一个头疼的问题,想请各位帮忙看看:
我有两个完全相同的应用,连接着同一个数据库,想要同时运行它们。单独使用其中一个应用从数据库获取信息时完全没问题,但当两个应用同时运行时,我在第一个应用里用「Change」命令修改了数据,接着在第二个应用里用「Show」命令查看,得到的却是修改前的旧数据——数据库明明已经被更新了,但第二个应用就是拿不到最新的信息。只有重启第二个应用后再执行「Show」,才能看到最新的数据,这显然不是我想要的效果。
我本来以为在while(true)循环里每次都执行Player player = context.Players.First(p => p.ID == 1);,应该每次都能从数据库拉取到最新的数据,但实际情况却不是这样。
以下是我的完整代码:
主逻辑代码
TTTContext context = new TTTContext(); while(true) { string command = Console.ReadLine(); Player player = context.Players.First(p => p.ID == 1); if (command == "Show") { Console.WriteLine(player.Name); } else if (command == "Change") { string name = Console.ReadLine(); player.Name = name; context.Players.Update(player); context.SaveChanges(); } }
TTTContext类代码
public class TTTContext: DbContext { public DbSet<Player> Players { get; set; } protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { optionsBuilder.UseMySQL("Server=localhost;Database=Test;Uid=root;Pwd=Martin1234;"); base.OnConfiguring(optionsBuilder); } }
备注:内容来源于stack exchange,提问作者Ivailo
相关产品推荐
相关产品推荐

