Entity Framework et VARBINARY

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

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 de la variable varbinary dans le code ci-dessous, une fois que celle-ci a été extraite 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 - ou faut-il le gérer différemment?

Réponse acceptée

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

int fieldSize = entity.MyVarBinaryField.Length;

Comme mentionné par tster : Dans une requête LINQ to Entities, vous pouvez appeler la méthode DataLength de la classe SqlFunctions , qui se traduira par un appel de fonction DATALENGTH dans l'instruction SQL générée. 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();

Réponse populaire

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



Related

Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow