C# Database.SqlQuery提供了另一个SqlParameterCollection已包含的SqlParameter
我为异步调用我的查询创建了一个helper方法,并添加了一个5的重试计数器以防万一。它在大多数情况下都能正常工作,但我仍能通过以下方式获得所有5次尝试: SqlParameter已包含在另一个 SqlParameterCollection 我从几个地方调用它,期望有一个项目或一个项目列表,最多有一个或两个参数 我的代码C# Database.SqlQuery提供了另一个SqlParameterCollection已包含的SqlParameter,c#,sql,asynchronous,C#,Sql,Asynchronous,我为异步调用我的查询创建了一个helper方法,并添加了一个5的重试计数器以防万一。它在大多数情况下都能正常工作,但我仍能通过以下方式获得所有5次尝试: SqlParameter已包含在另一个 SqlParameterCollection 我从几个地方调用它,期望有一个项目或一个项目列表,最多有一个或两个参数 我的代码 public static Object GetQueryResult(List<SqlParameter> parameters, Type dataType, s
public static Object GetQueryResult(List<SqlParameter> parameters, Type dataType, string query, bool isList) {
Object result = null;
int retry = 0;
while (result == null && retry < 5) {
retry++;
try {
if (isList) {
if (parameters.Count > 1)
result = lnssContext.Database.SqlQuery(dataType, query, parameters[0], parameters[1]).Cast<Object>().ToList();
else
result = lnssContext.Database.SqlQuery(dataType, query, parameters[0]).Cast<Object>().ToList();
} else {
if (parameters.Count > 1)
result = lnssContext.Database.SqlQuery(dataType, query, parameters[0], parameters[1]).Cast<Object>().ToList().FirstOrDefault();
else
result = lnssContext.Database.SqlQuery(dataType, query, parameters[0]).Cast<Object>().ToList().FirstOrDefault();
}
} catch (Exception e) {
log.Info("Query failed . Retry count:" + retry, e);
result = null;
}
}
return result;
}
它是Linq To SQL,不是吗?LnsContext.Database是System.Data.Entity.Database,如果这是您的意思的话。这是带有mysql的c。因为我在迭代,所以在再次调用它之前,我只是克隆了参数,结果成功了