entity framework和VARBINARY

我正在使用.NETentity framework,我有一个包含varbinary的实体。 有没有一种简单的方法可以在代码隐藏中获取varbinary的大小,从数据库中检索出来之后呢?

我想可能有一些方法可以直接从实体获取大小,比如entity.Context.Size – 还是需要以不同的方式处理它?

varbinary转换为Entity Framework中的byte[]字段,这意味着您可以检查数组的Length属性:

 int fieldSize = entity.MyVarBinaryField.Length; 

正如tster所提到的:在LINQ to Entities查询中,您可以调用SqlFunctions类的DataLength方法,该方法将转换为生成的SQL语句中的DATALENGTH函数调用。 这仅适用于SQL Server和Entity Framework 4或更高版本:

 int? fieldSize = repository.Entity .Select(e => SqlFunctions.DataLength(e.MyVarBinaryField)).Single(); 

我知道这个问题很老,但EF现在通过使用SqlFunctions.DataLength()来支持这个问题。

我通过运行另一个查询来解决它,获取单元格的DATALENGTH()。 不是最顺畅的方式,但它的工作原理。

我仍然有兴趣听听是否有人能为此提出答案。