System.IndexOutOfRangeException 和带接口或基的 SqlQuery 方法 Class
System.IndexOutOfRangeException and SqlQuery method with Interface or Base Class
我有一个未映射的 属性 并在下面收到此错误。我尝试了基础 class 和接口,但它一直试图将 SQL 结果映射到正在发送的 class。我不想将此 class 复制到另一个,因为此 class 上有大量属性及其列表。界面没有“日期”属性.
System.IndexOutOfRangeException: 'Date'
方法
public List<T> GetTest<T>(int testId) where T : IBaseTestComplex
{
return DataContext.Database.SqlQuery<T>("EXEC [Test].[GetTest] @TestId",
new SqlParameter("TestId", testId)).ToList();
}
来电
var tests = testRepository.GetTest<TestComplex>(testId);
最后我使用了 SqlDateReader 来跳过那些每天抛出数十万次的异常。
using (var connection = new SqlConnection(DataContext.Database.Connection.ConnectionString))
{
using (var cmd = new SqlCommand("[Test].[GetTest]", connection))
{
var parameters = new List<SqlParameter>
{
new SqlParameter("TestId", GetDataValue(testId))
};
cmd.Parameters.AddRange(parameters.ToArray());
connection.Open();
cmd.CommandType = CommandType.StoredProcedure;
using (var dr = cmd.ExecuteReader())
{
if (dr.HasRows)
{
while (dr.Read())
{
games.Add(Get(dr));
}
}
}
}
}
我有一个未映射的 属性 并在下面收到此错误。我尝试了基础 class 和接口,但它一直试图将 SQL 结果映射到正在发送的 class。我不想将此 class 复制到另一个,因为此 class 上有大量属性及其列表。界面没有“日期”属性.
System.IndexOutOfRangeException: 'Date'
方法
public List<T> GetTest<T>(int testId) where T : IBaseTestComplex
{
return DataContext.Database.SqlQuery<T>("EXEC [Test].[GetTest] @TestId",
new SqlParameter("TestId", testId)).ToList();
}
来电
var tests = testRepository.GetTest<TestComplex>(testId);
最后我使用了 SqlDateReader 来跳过那些每天抛出数十万次的异常。
using (var connection = new SqlConnection(DataContext.Database.Connection.ConnectionString))
{
using (var cmd = new SqlCommand("[Test].[GetTest]", connection))
{
var parameters = new List<SqlParameter>
{
new SqlParameter("TestId", GetDataValue(testId))
};
cmd.Parameters.AddRange(parameters.ToArray());
connection.Open();
cmd.CommandType = CommandType.StoredProcedure;
using (var dr = cmd.ExecuteReader())
{
if (dr.HasRows)
{
while (dr.Read())
{
games.Add(Get(dr));
}
}
}
}
}