Entity Framework и VARBINARY

asp.net c# entity-framework sql-server-2005

Вопрос

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

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

Принятый ответ

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

int fieldSize = entity.MyVarBinaryField.Length;

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

int? fieldSize = repository.Entity
  .Select(e => SqlFunctions.DataLength(e.MyVarBinaryField)).Single();

Популярные ответы

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



Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему
Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему