2012-04-21 46 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)來建立所需的關係。

相關問題