2012-04-21 45 views
0

我怎么能一个外键与此不同的名称关联关联:在后createdby用户名在用户表。Asp.net MVC实体框架代码首先外键具有不同的名称

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

你的映射是正确的 - 尤其是[ForeignKey("CreatedBy")]属性,你不需要改变任何东西。

在实体框架的依赖外键关系(= Post)和外键通常是指委托人(= User)的主键 - 与主键是UserID - 按照惯例,还因为你有用Key属性标记它。没有什么你需要指定了。

由于外键CreatedBy可为空(long?),您的关系是可选的(0..1到多)。因此,数据库中可能有帖子尚未由任何用户创建。如果你不想要这个,你可以通过使用不可为空的外键属性(long CreatedBy)来建立所需的关系。

相关问题