Entity Framework и VARBINARY - PullRequest
       9

Entity Framework и VARBINARY

7 голосов
/ 03 марта 2009

Я использую инфраструктуру сущностей .NET, и у меня есть одна сущность, содержащая varbinary. Есть ли простой способ получить размер varbinary в заднем коде после того, как он был извлечен из базы данных?

Я думаю, что может быть какой-то способ получить размер непосредственно от сущности, что-то вроде entity.Context.Size - или вам нужно обрабатывать его по-другому?

Ответы [ 3 ]

19 голосов
/ 21 июля 2009

A varbinary преобразуется в поле byte[] в Entity Framework, что означает, что вы можете проверить свойство Length массива:

int fieldSize = entity.MyVarBinaryField.Length;

Как указано tster : в запросе LINQ to Entities вы можете вызвать метод DataLength класса SqlFunctions , который преобразуется в DATALENGTH вызов функции в сгенерированном операторе SQL. Это работает только с SQL Server и Entity Framework 4 или более поздней версии:

int? fieldSize = repository.Entity
  .Select(e => SqlFunctions.DataLength(e.MyVarBinaryField)).Single();
9 голосов
/ 23 марта 2011

Я знаю, что этот вопрос старый, но EF теперь поддерживает это с помощью SqlFunctions.DataLength()

0 голосов
/ 03 марта 2009

Я решил это, выполнив другой запрос, получив DATALENGTH () ячейки. Не самый плавный путь, но он работает.

Мне все еще интересно услышать, может ли кто-нибудь придумать ответ на этот вопрос.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...