0

我正在使用实体框架(用于学习)来创建数据表;但是,当我运行应用程序时,它会将数据库列名称创建为: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 属性,我收到了这个错误:

类型“BusinessListingMVC.Models.Kategori”的属性“AnaKategori”上的 ForeignKeyAttribute 是         
无效。在依赖类型上找不到外键名称“ANA_CATEGORY_ID”
BusinessListingMVC.Models.Kategori'。

Name 值应该是逗号分隔的外键属性名称列表。

说明:执行当前 Web 请求期间发生未处理的异常。
请查看堆栈跟踪以获取有关错误及其来源的更多信息
编码。
4

1 回答 1

0

我找到了这个链接,它指出这似乎是一个错误。在这种情况下,您必须使用该[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; }
}
于 2013-01-31T18:04:13.580 回答