我正在使用.NET实体框架,我有一个包含varbinary的实体.有没有一种简单的方法可以在代码隐藏中获取varbinary的大小,从数据库中检索后呢?
我想可能有一些方法可以直接从实体获取大小,比如entity.Context.Size - 还是需要以不同的方式处理它?
A varbinary
转换为byte[]
Entity Framework中的字段,这意味着您可以检查数组的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()