Entity Framework не дава правилното име в базата данни

Използвам рамка на обект (за обучение), за да създам таблицата с данни; обаче, когато стартирам приложението, то създава името на колоната на базата данни като: AnaKategori_ANA_CATEGORY_ID.

Защо го прави, след като изрично му казвам да наименува колоната като "ANA_CATEGORY_ID"?

По-долу е съдържанието на файловете на класа.

[Table("CATEGORY")]
public class Kategori
{
    [Key]
    public Guid CATEGORY_ID { get; set; }
    [MaxLength(100)]
    public string CATEGORY { get; set; }
    [MaxLength(100)]
    public string CATEGORY_TR { get; set; }
    [Column("ANA_CATEGORY_ID")]
    public virtual AnaKategori AnaKategori { get; set; }

}

Опитах отговора на boindiil преди да публикувам (което беше да използвам атрибут ForeignKey и получих тази грешка:

The ForeignKeyAttribute on property 'AnaKategori' on type 'BusinessListingMVC.Models.Kategori' is         
not valid. The foreign key name 'ANA_CATEGORY_ID' was not found on the dependent type
BusinessListingMVC.Models.Kategori'. 

The Name value should be a comma separated list of foreign key property names.

Description: An unhandled exception occurred during the execution of the current web request.
Please review the stack trace for more information about the error and where it originated in
the code. 

person Adem A.    schedule 31.01.2013    source източник
comment
Когато използвате атрибута ForeignKey, трябва да имате две полета във вашия клас, int (ParentCategoryId), а също и виртуалното поле.   -  person Ameen    schedule 31.01.2013


Отговори (1)


Намерих тази връзка , което посочва, че това изглежда е грешка. В този случай трябва да използвате [ForeignKey] атрибут, за да му дадете желаното име:

[Table("CATEGORY")]
public class Kategori
{
    [Key]
    public Guid CATEGORY_ID { get; set; }
    [MaxLength(100)]
    public string CATEGORY { get; set; }
    [MaxLength(100)]
    public string CATEGORY_TR { get; set; }
    [Column("ANA_CATEGORY_ID")]
    public Guid ANA_CATEGORY_ID { get; set; }
    [ForeignKey("ANA_CATEGORY_ID")]
    public virtual AnaKategori AnaKategori { get; set; }
}
person boindiil    schedule 31.01.2013