2012-04-08 90 views
0

同名我使用代碼第一種方法是創建Groups_GroupID作爲用戶表的外鍵時,它生成的數據庫有這兩款車型asp.net的MVC EF導航屬性在代碼中第一

public class Group 
    { 
    [Key] 
    public int GroupID { get; set; } 

    [Required] 
    public string GroupName { get; set; } 
} 


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

    [Required] 
    [StringLength(20)] 

    public string UserName { get; set; } 

    [Required] 
    public string Password { get; set; } 
    public virtual Group Groups { get; set; } 
} 

。用displayname指定GroupID不起作用,或者是因爲它正在創建相同的名稱。我如何讓它在用戶表中生成GroupID?我使用EF 4.3

回答

3

使用ForeignKey屬性上的導航性能

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

    [Required] 
    [StringLength(20)] 

    public string UserName { get; set; } 

    [Required] 
    public string Password { get; set; } 

    [ForeignKey("GroupId")] 
    public virtual Group Groups { get; set; } 
} 
0

這工作...

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

    [Required] 
    [StringLength(20)] 

    public string UserName { get; set; } 

    [Required] 
    public string Password { get; set; } 

    public int GroupId { get; set; } 
    public virtual Group Groups { get; set; } 
} 

但你可能要做到這一點,你可能要處理的情況下希望許多用戶屬於一個組和/或一個用戶屬於多個組。

public class Group 
    { 
    [Key] 
    public int GroupID { get; set; } 

    [Required] 
    public string GroupName { get; set; } 

    public List<User> Users { get; set; } 
} 


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

    [Required] 
    [StringLength(20)] 

    public string UserName { get; set; } 

    [Required] 
    public string Password { get; set; } 

    public List<Group> Groups { get; set; } 
}