实体框架4.1 - POCO中的外键映射

时间:2011-11-11 00:09:07

标签: entity-framework-4.1 poco

使用以下数据库架构:

用户:UserID(主键)
UserInfo:UserInfoID(主键),UserID(foreignKey),[UserInfo数据的其他列]

User和UserInfo有1-1关系。我想将此架构映射到以下POCO:

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

   public virtual UserInfo userinfo {get;set;}
}
public class UserInfo
{
  [Key]
  public int UserInfoID {get;set;}

  public int UserID {get;set;}

  [ForeignKey("UserID")]
  public virtual User User {get; set;}

  ... Other properties of UserInfo...
}

基本上我希望能够加载Users对象,并且还存在相关的UserInfo对象。这似乎是一项简单的任务,但我无法找到正确的属性组合和/或流畅的API来实现这一目标。

编辑:我发现在User中将UserInfo属性设置为ICollection,然后一切都正确连接。所以现在我的问题是,有没有办法避免使用ICollection,因为我知道用户将有1或0个关联的UserInfo记录。

1 个答案:

答案 0 :(得分:2)

对于一对一场景,您必须在两个实体上使用与key和fk相同的属性。 尝试使用UserId属性作为UserInfo实体的Id,然后使用Fk到User属性。