Как получить размер BLOB-объекта без получения самого значения с помощью Entity Framework - PullRequest
3 голосов
/ 09 февраля 2012

Как получить размер blob (varbinary(max)) из SQL Server без получения самого большого двоичного объекта с Entity Framework в C #?

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

}

В sql я бы это сделал select Len(field) from table?Или единственный способ сделать это - сохранить значение как другой столбец?Не имеет смысла загружать BLOB-объекты на компьютер (особенно на медленных каналах) и затем использовать Blob.Length.

1 Ответ

8 голосов
/ 09 февраля 2012

Использовать SqlFunctions:

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

}
...