Я использую Entitiy Framework Core и хочу получить динамические c данные из моих хранимых процедур. Например:
result1FromGetDataMethod = {id=xxx, datetime=xxx, isValid=xxx, ...}
result2FromGetDataMethod = {id=xxx, datetime=xxx, otherParamWhichIsNotInResult1=xxx, ...}
result3FromGetDataMethod = {completelyOtherParam=xxx, ...}
...
Я не знаю, какие пары ключ-значение поступают из базы данных, и мне не нужно знать это для моей бизнес-логики c. Есть ли способ получить динамические данные c из хранимых процедур? Я попробовал следующее, но это не сработало.
public class TestContext : DbContext
{
public TestContext(DbContextOptions<TestContext> options) : base(options)
{
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Query<dynamic>();
}
public dynamic GetData(MyRequestOptions searchParams)
{
SqlParameter fromDate = new SqlParameter("from", searchParams.From.ToString("yyyy-MM-dd"));
SqlParameter toDate = new SqlParameter("to", searchParams.To.ToString("yyyy-MM-dd"));
string sqlQuery = "exec procedure @from, @to";
var data = Query<dynamic>()
.FromSql(sqlQuery, fromDate, toDate);
.ToList();
return data;
}
}
В этом примере появляется ошибка «Последовательность не содержит элементов». Если я запускаю процедуру на сервере SQL, она запускается без проблем.