Пожалуйста, попробуйте
WHERE (A.PN IN ('RCF6709') or A.PN IS NULL )
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();
Я решил его путем выполнения другого запроса, получения DATALENGTH () ячейки. Не самый гладкий путь, но это работает.
Я все еще интересуюсь слушанием, если кто-либо может придумать ответ для этого все же.