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