В настоящее время я пытаюсь загрузить в общей сложности 30 000 файлов varbinary из SQL Server на свой локальный диск. Я использую Entity Framework, чтобы установить соединение для загрузки этих файлов в консольное приложение .NET. Что выглядит следующим образом.
static void Main(string[] args)
{
using (DatabaseContext db = new DatabaseContext())
{
var files = from t in db.StandardExpenceFiles
select t;
foreach (StandardExpenceFiles t in files)
{
if (t.MimeType != null && t.FileName != null && t.FileContent != null)
{
if (t.StandardExpenseShortDescription.Contains("/ "))
{
t.StandardExpenseShortDescription = t.StandardExpenseShortDescription.Replace("/ ", string.Empty);
}
string ext = t.MimeType.Substring(t.MimeType.LastIndexOf('/') + 1);
try
{
if (!File.Exists("path"))
{
using (FileStream fs = File.Create("path"))
{
fs.Write(t.FileContent, 0, t.FileContent.Length);
fs.Close();
}
}
}
catch (Exception ex)
{
throw ex;
}
}
}
}
}
Работает, но через некоторое время вылетает, потому что память неправильно распределяется. как вы можете видеть на скриншоте. Это вызывает задержку, которая приводит к тайм-ауту sqlclient.
Я новичок в Entity Framework и не знаю, как правильно его использовать. Я ищу способ исправить тот или иной способ загрузки моих файлов с помощью Entity Framework.