Загрузите файлы Varbinary в C #, используя Entity Framework - PullRequest
0 голосов
/ 06 сентября 2018

В настоящее время я пытаюсь загрузить в общей сложности 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.

enter image description here

Я новичок в Entity Framework и не знаю, как правильно его использовать. Я ищу способ исправить тот или иной способ загрузки моих файлов с помощью Entity Framework.

...