2013-03-15 11 views
6

Ecco il mio soggetto:entità attributi di annotazione non funzionano

[Table(Name = "PdfMeta")] 
public class Meta 
{ 
    [Key()] 
    public int Id { get; set; } 

    [Column(Name = "TotalPages")] 
    public int TotalPages { get; set; } 

    [Column(Name = "PdfPath")] 
    public string PdfUri { get; set; } 

    [Column(Name = "ImagePath")] 
    public string ImageUri { get; set; } 

    [Column(Name = "SplittedPdfPath")] 
    public string SplittedFolderUri { get; set; } 

} 

Ecco il codice da contesto:

 public DbSet<Meta> PdfMeta { get; set; } 

Perché nuova tabella (METAS) ha creato con ImageUri, PdfUri ... colonne ? So che questo è stato fatto per convenzione, ma ho esplicitamente indicato tabella e colonne.

+0

Utilizzi forse anche la configurazione fluente? – JustAnotherUserYouMayKnow

+0

sì, io uso i repository generici con IDbContext, ... – NET

+2

Ci sono due 'ColumnAttribute' assicurati che tu stia usando quello giusto:' System.ComponentModel.DataAnnotations.Schema.ColumnAttribute' – nemesv

risposta

4

Name proprietà di ColumnAttribute ha solo getter definito. Passare nome di colonna nel costruttore, invece:

[Table("PdfMeta")] 
public class Meta 
{ 
    [Key] 
    public int Id { get; set; } 

    [Column("TotalPages")] 
    public int TotalPages { get; set; } 

    [Column("PdfPath")] 
    public string PdfUri { get; set; } 

    [Column("ImagePath")] 
    public string ImageUri { get; set; } 

    [Column("SplittedPdfPath")] 
    public string SplittedFolderUri { get; set; } 
} 

BTW ColumnAttribute definiti in EntityFramework.dll. Sembra che tu abbia fatto riferimento a ColumnAttribute da System.Data.Linq.dll

+3

@NET probabilmente stai utilizzando un attributo errato . Verifica, dovrebbe provenire dall'assembly EF dallo spazio dei nomi 'System.ComponentModel.DataAnnotations.Schema' –

Problemi correlati