は、として定義されたデータモデルとシンプルなマイクロブログプラットフォームは、以下の考えてみましょう:EF6コードで最初にカスタム参照列名を設定するにはどうすればよいですか?
[Table("users")]
public class User
{
[Column("id"), Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public long Id { get; set; }
[Column("name"), MaxLength(45), Index(IsUnique = true)]
public string Name { get; set; }
[Column("password"), MaxLength(45)]
public string Password { get; set; }
public virtual ICollection<Message> Messages { get; set; }
}
[Table("messages")]
public class Message
{
[Column("id"), Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public long Id { get; set; }
[Column("text"), MaxLength(512)]
public string Text { get; set; }
[Column("author")]
public virtual User Author { get; set; }
}
私はそれデータベース(SQL DDL)最初の方法設計していた、私は外部キーとしてmessages.author
参照users.id
含まれています。私はこのように好きです:きちんと説明してください。
しかし、私が[Column("author")]
属性を明示的に指定したにもかかわらず、コードの先頭の方法を試したところ、ではなく、外部キー列の名前がmessages.User_Id
であることがわかりました。
この動作を修正する方法を教えてください。
私は、必要に応じて参照がより明白にするために、単純.user
(代わりに私のオリジナル.author
のアイデアのを)という名前を付けすることに同意するものとし、確かではない.User_Id
でしょう - _Id
この、明らかに冗長と醜いがキーに付加されますとき、私は完全にそれを嫌います列。
SQLiteCodeFirstライブラリでSQLiteデータベースを使用していますが、これが通常のEntity Frameworkの動作か、この特定のライブラリのバグかどうかはわかりません。