如何将外键与不同的名称关联起来:在帖子中创建,在用户表中 UserID 。
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; }
}
答案 0 :(得分:0)
您的映射是正确的 - 尤其是[ForeignKey("CreatedBy")]
属性,您无需更改任何内容。
在Entity Framework中的外键关系中,依赖(= Post
)及其外键始终引用主体的主键(= User
) - 主键为{{ 1}} - 按惯例,也因为您使用UserID
属性标记了它。您无需再指定任何内容。
您的关系是可选的(0..1对多),因为外键Key
可以为空(CreatedBy
)。因此,数据库中可能存在尚未由任何用户创建的帖子。如果您不想这样,可以使用不可为空的外键属性(long?
)来建立所需的关系。