3

私は常に属性を使用して、エンティティのプロパティを対応する列にマップしています。次に例を示します。

[Table("news_entries")]
public class News
{
    [Key]
    public int Id { get; set; }

    [Column("d_date")]
    public DateTime Date { get; set; }

    [Column("m_text")]
    public string Text { get; set; }

    [Column("id_user")]
    public int UserId { get; set; }

    [ForeignKey("UserId")]
    public User User { get; set; }
}

しかし、テーブルと列の名前がプロパティと一致しない多対多の関係をどのようにマッピングできるかはまだわかりません。

で を使用できることはわかってDbModelBuilderDbContextますが、エンティティ クラスの外部でマッピングを行いたくありません。これらの関係を属性にもマッピングすることは何とか可能ですか?

4

1 に答える 1

1

DbContext で DbModelBuilder を使用できることはわかっていますが、エンティティ クラスの外部でマッピングを行いたくありません。これらの関係を属性にもマッピングすることは何とか可能ですか?

いいえ。属性を適用できるジャンクション テーブルのクラスはありません。多対多の直接マッピング (ジャンクション テーブルがナビゲーション プロパティの背後に隠されている) を使用したら、流暢な API を使用する必要があります。

おそらく、EF6 ではカスタム規則によってこれが可能になりますが、外部キー名を規則で処理するという私の最初の経験は成功しなかったため、ジャンクション テーブルも同じ話になると思います。

于 2013-05-12T09:56:01.180 に答える