У меня проблема с EF и SQL. У меня есть сумасшедший сохраненный процесс, который плохо переводится в код C # (EF / LINQ). По сути, я вызываю хранимый процесс с помощью вызовов SqlConnection и SqlCommand (System.Data.SqlClient) [см. Ниже], а затем извлекаю данные из таблицы с помощью EF. Это происходит снова и снова, пока основной стол не будет исчерпан. (У меня есть главная таблица с несколькими сотнями тысяч записей, и сохраненный процесс извлекает небольшую часть этого и помещает ее в таблицу для обработки, после обработки эти записи удаляются из главной таблицы, и она повторяется до тех пор, пока основной стол был полностью обработан).
Проблема в том, что таблица никогда не обновляется в C #, но она обновляется в бэкэнде.
Итак, вот SQL Call:
SqlConnection sqlConn;
SqlCommand sqlCommand;
using (sqlConn = new SqlConnection(ConfigurationManager.ConnectionStrings["AppMRIConnection"].ConnectionString))
{
using (sqlCommand = new SqlCommand(String.Format("EXEC sp_PullFinalDataSetPart '{0}', '{1}'", sLocation, sOutputFileType), sqlConn))
{
sqlConn.Open();
sqlCommand.ExecuteNonQuery();
sqlConn.Close();
}
}
Это усекает таблицу FinalDataSetPart и перезагружает ее с X новыми записями.
Это вызов в C #
List<FinalDataSetPart> lstFinalPart = db.FinalDataSetPart.ToList();
Этот вызов ВСЕГДА загрузит первую таблицу finaldatasetpart независимо от того, что на самом деле находится в таблице. Этот вызов правильно внутри цикла (я могу взломать код и увидеть, что он вызывает этот метод на каждой итерации цикла).
Кто-нибудь видел что-нибудь подобное раньше?!
Любые мысли / помощь / советы будут с благодарностью.
Спасибо!