0

ここで外部キーを別の名前に関連付けるにはどうすればよいですか:createdbyinpostUserIDinusersテーブル。

public class Post : IValidatableObject
{
    [Key]
    public long PostID { get; set; }

    public long? ParentPostID { get; set; }      


    [ForeignKey("CreatedBy")]  
    public virtual User Users { get; set; }

    [ScaffoldColumn(false)]
    public DateTime? CreatedDate { get; set; }

    [ScaffoldColumn(false)]
    public long? CreatedBy { get; set; }     
}

public class User
{
    [Key]
    public long UserID { get; set; }

    [Required]
    [MaxLength(20)]
    [Display(Name = "User Name")]
    public string UserName { get; set; }
}
4

1 に答える 1

0

マッピングは正しいです。特に[ForeignKey("CreatedBy")]属性については、何も変更する必要はありません。

Entity Frameworkの外部キー関係では、依存(= Post)とその外部キーは常にプリンシパル(= User)の主キーを参照します-そして主キーはUserID-慣例により、またKey属性でマークしたためです。もう指定する必要はありません。

CreatedBy外部キーはnull許容( )であるため、関係はオプション(0..1対多)long?です。したがって、データベースには、どのユーザーも作成していない投稿が存在する可能性があります。これが不要な場合は、null許容でない外部キープロパティ()を使用して、必要な関係を作成できますlong CreatedBy

于 2012-04-21T11:28:08.223 に答える