【发布时间】:2018-01-18 12:06:14
【问题描述】:
我遇到了一个奇怪的问题,我不确定代码发生了什么,昨天它运行良好。 我在表中有数据,并且正在使用下面的函数从数据库中检索它。我正在使用我的 SQL。当应用程序启动时,数据会正确获取,但是一旦我们多次访问 DB 以获得一些牵引力,例如保存/更新/删除。它停止从 DB 获取记录,或者您可以说它停止与 DB 通信,但它正在建立连接。我已经证实了这一点。
下面是我的代码:
public List<AcademyTeamsEntity> GetAcademyTeams(int academyId)
{
using (IDbConnection db = new MySql.Data.MySqlClient.MySqlConnection(ClsConnectionString.connectionString))
{
string query = @"SELECT * FROM academyteams where AcademyId=" + academyId + " order by CategoryId asc ";
return db.Query<AcademyTeamsEntity>(query, commandType: System.Data.CommandType.Text).ToList();
}
}
请建议我犯了什么错误。提前致谢。
【问题讨论】:
-
你能添加保存/更新/删除方法吗?交易似乎有问题。也许事务级别设置为可序列化并开始,但从未完成?
-
请使用参数 - dapper 让这如此简单;
...where AcademyId=@academyId order by ...并将new { academyId }作为第二个参数传递给Query<T>(返回阅读实际问题);补充小点:CommandType.Text不需要指定,.AsList()应该优先于.ToList() -
@MarcGravell,是的,我知道,感谢您的输入,我更改了测试,实际上我使用的格式与您所说的相同。
-
如果你这样做
int count = db.QuerySingle<int>("select count(1) from academyteams")- 它会得到什么?同样,如果您这样做var firstFew = db.Query<AcademyTeamsEntity>("select top 10 * from academyteams").AsList();?基本上,我要排除的是:它是否正确 - 即数据不再存在吗?您的 CRUD 工作是否有可能删除了您认为正在获取的数据?编辑:在 MySQL 语法中可能是select * from academyteams limit 10 -
@MarcGravell,好的,让我试试,但我也面临这个问题的小清单...... :(
标签: mysql asp.net asp.net-mvc connection dapper