Сохраните файл в базе данных SQL, используя Silverlight и LINQ - PullRequest
0 голосов
/ 05 марта 2012

Каков наилучший способ сохранить файл в моей базе данных SQL с использованием Silverlight и LINQ?

Я прочитал несколько статей, некоторые из них здесь, в StackOverflow, и там так много информации, что я не уверен, что лучше.

У меня есть кое-что, что работает, используя:

// Read the file
var reader = new StreamReader(openFileDialog.File.OpenRead());
contents = reader.ReadToEnd();
reader.Close();

// Convert to byte[]
byte[] inputbuffer;
var encoding = new UTF8Encoding();
inputBuffer = encoding.GetBytes(contents);

но в соответствии с тем, что я читал здесь, в StackOverflow, использование кодировки UTF8 не очень хорошая идея.

Также я могу получить файл из базы данных, используя LINQ, когда мне это нужно, но как мне преобразовать его обратно из байта [] в реальный файл?

Или было бы лучше использовать WCF для сохранения и получения файла?

Любые идеи очень ценятся.

1 Ответ

1 голос
/ 05 марта 2012

да UTF8Кодирование не является хорошим вариантом. Вы можете использовать метод copyto * FileStream , чтобы скопировать байты файлов в поток памяти и использовать метод ToArray, чтобы получить все байты вместо этого.

Если вы можете получить доступ к БД напрямую из Silverlight, тогда это должно быть в порядке, но вторая часть ваших вопросов указывает на то, что вы не уверены (?) - если это так, пожалуйста, задайте это в другой вопрос.

Вот фрагмент для возврата байтов из файла:

        var stream = openFileDialog.File.OpenRead();
        using (var memStream = new System.IO.MemoryStream())
        {
            stream.CopyTo(memStream);
            return memStream.ToArray();
        }

Чтобы сохранить его обратно, вам нужно будет использовать SaveFileDialog класс в silverlight

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