首页 > 解决方案 > 当我使用 ServiceStack.OrmLite.SqlServer Db.Select有时 Result 是 TableB 的行或 TableA 的其他行

问题描述

var user =  Db.Single<User>(x => x.Id==1); 
   if(user.Id!=1||user.Id==0)
{logger.Error($"Incorrect result{user.Id}")}

可以在日志文件中看到任何结果。这个问题困扰了我很久以前从未见过

标签: servicestackormlite-servicestack

解决方案


我也认为这可能是并发问题。所以我编写了一个简单的选择使用 ado.net ,问题仍然存在

  string sql = $" select * from where Id=1 ";
                                using (SqlConnection connection = new SqlConnection(dbConnectionString))
                                {
                                    DataTable dt = new DataTable();
                                    connection.Open();
                                    SqlDataAdapter sda = new SqlDataAdapter(sql , connection);
                                    sda.Fill(dt);
                                    connection.Close();
                                    sda.Dispose();
                                    if (dt != null && dt.Rows.Count > 0)
                                    {
                                    var    user= dt.ToSingleModel<User>();
                                    }
                                } 

推荐阅读