实体框架和VARBINARY

Mar*_*s L 7 c# asp.net entity-framework sql-server-2005

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

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

ber*_*hof 19

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

int fieldSize = entity.MyVarBinaryField.Length;
Run Code Online (Sandbox Code Playgroud)

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

int? fieldSize = repository.Entity
  .Select(e => SqlFunctions.DataLength(e.MyVarBinaryField)).Single();
Run Code Online (Sandbox Code Playgroud)


tst*_*ter 9

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