Question

J'utilise le framework d'entités .NET et j'ai une entité contenant un varbinary. Existe-t-il un moyen simple d’obtenir la taille du varbinary dans le codeBear, après qu’il ait été extrait de la base de données?

Je pense qu'il pourrait y avoir un moyen d'obtenir la taille directement de l'entité, quelque chose comme entité.Context.Size & # 8211; ou faut-il le gérer différemment?

Était-ce utile?

La solution

Un varbinary se traduit par un champ octet [] dans Entity Framework, ce qui signifie que vous pouvez vérifier la propriété Longueur du tableau:

int fieldSize = entity.MyVarBinaryField.Length;

Comme mentionné par tster : dans une requête LINQ to Entities, vous pouvez appeler le méthode DataLength de la méthode SqlFunctions , qui se traduira par une DATALENGTH dans l'appel de fonction généré. Cela ne fonctionne qu'avec SQL Server et Entity Framework 4 ou version ultérieure:

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

Autres conseils

Je sais que cette question est ancienne, mais EF le prend désormais en charge en utilisant SqlFunctions.DataLength ()

Je l'ai résolu en exécutant une autre requête, en obtenant le DATALENGTH () de la cellule. Ce n’est pas le plus simple, mais ça marche.

Je suis toujours intéressé à savoir si quelqu'un peut trouver une réponse à cette question.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top