使用以下数据库架构:
用户: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记录。
答案 0 :(得分:2)
对于一对一场景,您必须在两个实体上使用与key和fk相同的属性。 尝试使用UserId属性作为UserInfo实体的Id,然后使用Fk到User属性。