如何从 SQL Server 获取 blob
(varbinary(max)
) 的大小,而不使用 C# 中的 Entity Framework 获取 blob 本身?
using (var context = new EntityBazaCRM(Settings.sqlDataConnectionDetailsCRM))
{
Settings.WybraneSzkolenie = context.Szkolenies.FirstOrDefault(d => d.SzkolenieID == szkolenieId);
}
在 sql 中我会这样做从表中选择 Len(field)
?或者唯一的方法是将值实际存储为另一列?将 blob 加载到计算机(尤其是在慢速链接上)然后使用 Blob.Length
是没有意义的。
最佳答案
使用 SqlFunctions:
using (var context = new EntityBazaCRM(Settings.sqlDataConnectionDetailsCRM))
{
Settings.WybraneSzkolenie = context.Szkolenies
.Where(d => d.SzkolenieID == szkolenieId)
.Select(d => SqlFunctions.DataLength(d.DataField))
.FirstOrDefault();
}
关于c# - 如何在不使用 Entity Framework 获取值本身的情况下获取 blob 大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9208957/