我有这两个模型
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; }
}
使用代码优先方法,它在生成数据库时创建Groups_GroupID作为用户表中的外键。使用displayname指定GroupID也不起作用,因为它正在创建相同的名称。那么我如何使它在用户表中生成GroupID?我正在使用EF 4.3
答案 0 :(得分: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; }
}
答案 1 :(得分: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; }
}