Pregunta

Estoy utilizando el marco de la entidad .NET y tengo una entidad que contiene un varbinary. ¿Existe una manera fácil de obtener el tamaño del varbinary en el código de código, después de que se haya recuperado de la base de datos?

Estoy pensando que podría haber alguna forma de obtener el tamaño directamente de la entidad, algo así como la entidad.Contexto.Tamaño & # 8211; o ¿hay que manejarlo de manera diferente?

¿Fue útil?

Solución

Un varbinary se traduce en un campo byte [] en Entity Framework, lo que significa que puede verificar la propiedad Length de la matriz:

int fieldSize = entity.MyVarBinaryField.Length;

Como lo menciona tster : en una consulta de LINQ to Entities, puede llamar a DataLength del método SqlFunctions , que se traducirá en una DATALENGTH llamada a la función en la declaración SQL generada. Esto solo funciona con SQL Server y Entity Framework 4 o posterior:

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

Otros consejos

Sé que esta pregunta es antigua, pero EF ahora admite esto utilizando SqlFunctions.DataLength()

Lo resolví ejecutando otra consulta, obteniendo el DATALENGTH () de la celda. No es la forma más fácil pero funciona.

Todavía estoy interesado en escuchar si alguien puede encontrar una respuesta para esto, sin embargo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top