如何获取blob大小而不使用Entity Framework获取值本身

Mad*_*Boy 3 c# sql-server entity-framework blob

如何从SQL Server获取blob(varbinary(max))的大小而不使用C#中的实体框架获取blob本身?

using (var context = new EntityBazaCRM(Settings.sqlDataConnectionDetailsCRM))
        {
            Settings.WybraneSzkolenie = context.Szkolenies.FirstOrDefault(d => d.SzkolenieID == szkolenieId);

}
Run Code Online (Sandbox Code Playgroud)

在sql中我会这样做select Len(field) from table吗?或者唯一的方法是将值实际存储为另一列?将blob加载到计算机(特别是在慢速链接上)然后使用是没有意义的Blob.Length.

Ale*_*aga 8

使用SqlFunctions:

using (var context = new EntityBazaCRM(Settings.sqlDataConnectionDetailsCRM))
{
    Settings.WybraneSzkolenie = context.Szkolenies
       .Where(d => d.SzkolenieID == szkolenieId)
       .Select(d => SqlFunctions.DataLength(d.DataField))
       .FirstOrDefault();

}
Run Code Online (Sandbox Code Playgroud)