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 に答える