2010-02-08 80 views
4

我有一个表格有一个斑点列代表一个文件。 我想运行一个LinqToSql查询,该查询返回文件的名称和描述以及文件大小......但为了不杀死性能,我显然不想下载整个blob!获得没有斑点本身的斑点大小

var q = from f in MyFiles 
     select new {f.Name, f.Description, f.Blob.Length}; 

似乎从数据库中拉出整个blob,然后计算它在本地内存中的长度。

我该如何做到这一点,以便我只获得blob大小,而无需下载整个blob?

回答

7

我认为在你的情况下,最好的选择是在将文件存储到数据库时将BLOB大小存储在单独的列中。

+4

+1 - 这正是我要做的,但我希望有更好的方式做到这一点 – MPritchard 2010-02-08 08:49:37

+1

+1 +答案信贷 - 是的,不是很优雅,但很少表现的惩罚。刚刚添加了一个计算列,它工作正常! – 2010-02-08 08:53:49

+1

这可能也会帮忙,http://forums.asp.net/p/974397/1240722.aspx#1240722 – 2010-02-08 08:57:10