2013-03-15 78 views
6

這裏是我的實體:Entity註解屬性不工作

[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; } 

} 

這裏是代碼背景:

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

爲什麼新表(METAS)已與ImageUri創建,PdfUri ...列?我知道這是按慣例完成的,但我已經明確指定了表格和列。

+0

你也許還使用流暢的配置? – JustAnotherUserYouMayKnow 2013-03-15 16:29:02

+0

是的,我使用IDbContext的通用存儲庫,... – NET 2013-03-15 16:30:20

+2

有兩個'ColumnAttribute'確保你使用正確的:'System.ComponentModel.DataAnnotations.Schema.ColumnAttribute' – nemesv 2013-03-15 16:34:08

回答

4

NameColumnAttribute的屬性只有getter定義。在構造函數中傳遞列名而不是:

[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; } 
} 

在EntityFramework.dll BTW ColumnAttribute定義。看起來像你從System.Data.Linq.dll引用ColumnAttribute

+3

@NET可能你使用了錯誤的屬性。驗證一下,它應該來自名爲'System.ComponentModel.DataAnnotations.Schema'的EF程序集。 – 2013-03-15 16:38:00