2011-07-12 1 views
7

J'essaie d'ajouter une entité à SQL CE 4 qui a la propriété de type byte []. De msdn j'ai compris que seul le type d'image peut contenir de gros fichiers (dans mon cas, ils ne sont pas si gros, mais encore plus de la limite du type binaire 8000 octets). Voici le modèle:Stocker le fichier dans SQL CE 4 en utilisant l'approche Entity Framework Code-First

public class TabModel 
{ 
    [Key] 
    public Guid Id { get; set; } 

    public string Title { get; set; } 
    public string Subtitle { get; set; } 
    public string Artist { get; set; } 
    public string Album { get; set; } 
    public string Author { get; set; } 
    public string TabAuthor { get; set; } 
    public DateTime DateAdded { get; set; } 

    [Column("file",TypeName="image")] 
    public byte[] File { get; set; } 

    public TabModel() 
    { 
     Id = Guid.NewGuid(); 
     DateAdded = DateTime.Now; 
    } 
} 

J'ai aussi classe dérivée de DbContext et quand je l'utilise quelque chose comme ça

library.Tabs.Add(tab);//tab of type TabModel, File is array with length equals 12000 
library.SaveChanges();//throws exception 

Erreur:

Validation failed for one or more entities. See 'EntityValidationErrors' property for more details. EntityValidationErrors[0]="The field File must be a string or array type with a maximum length of '4000'."

J'ai essayé d'utiliser L'attribut MaxLength sur la propriété et l'erreur passe à "Clé binaire avec une longueur de plus de 8000 non prise en charge".

Il semble que EF affecte la colonne au type binaire et non l'image. Comment régler ceci?

Répondre

Questions connexes