使用Silverlight和LINQ将文件保存到SQL数据库的最佳方法是什么?
我已经阅读了一些文章,其中一些文章来自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上阅读的内容,使用UTF8Encoding并不是一个好主意。
此外,我可以在需要时使用LINQ从数据库中获取文件,但是如何将其从byte []转换回实际文件?
或者使用WCF保存和检索文件会更好吗?
非常感谢任何想法。
答案 0 :(得分:1)
是的UTF8Encoding不是一个好选择。 您可以使用FileStream's copyto method将文件字节复制到内存流中,并使用它的ToArray方法来获取所有字节。
如果您可以直接从Silverlight访问数据库,那么这应该没问题,但问题的第二部分表明您可能不确定(?) - 如果是,请将此问题放到另一个问题中。
这是一个从文件中返回字节的片段:
var stream = openFileDialog.File.OpenRead();
using (var memStream = new System.IO.MemoryStream())
{
stream.CopyTo(memStream);
return memStream.ToArray();
}
要保存它,您必须使用silverlight中的SaveFileDialog类