使用Silverlight和LINQ将文件保存到SQL数据库

时间:2012-03-05 10:31:07

标签: c# sql silverlight linq

使用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保存和检索文件会更好吗?

非常感谢任何想法。

1 个答案:

答案 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