Как выполнить хранимую процедуру в цикле foreach, используя EF Core в .NET Core? - PullRequest
0 голосов
/ 01 марта 2019

Я пытаюсь выполнить хранимую процедуру в цикле foreach следующим образом:

foreach (var p in results)
{
    string InputOne = year.ToString();
    char c = '0';
    string InputTwo = month.ToString().PadLeft(2, c); 

    List<Entity> data = new List<Entity>();

    SqlParameter Param1 = new SqlParameter("@Param1", "Month");
    SqlParameter Param2 = new SqlParameter("@Param2", p.Id);
    SqlParameter Param3 = new SqlParameter("@Param3", InputOne);
    SqlParameter Param4 = new SqlParameter("@Param4", InputTwo);

    string usp = "Schema.usp_spname @Param1, @Param2, @Param3, @Param4";
    data = _dbContext._sp_GetEmployeeAttendanceData.FromSql(usp, Param1, Param2, Param3, Param4).ToList();
}

Я получаю одинаковые данные для всех условий, в то время как моя база данных содержит разные данные.

Пожалуйста, помогите мне решить эту проблему!

1 Ответ

0 голосов
/ 01 марта 2019

последняя строка в вашем цикле

data =

заменяет переменную данных в каждой итерации, поэтому вы получите только последнюю итерацию в этой Для цикла .. Вам нужно изменить его так, чтобы часть (data =) добавлялась к списку. Если данные являются списком, вы можете использовать data.AddRange()

И эту строкуList<Entity> data = new List<Entity>(); необходимо переместить за пределы цикла

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...