我正在尝试实现实体框架的代码优先方法。我有四个实体UserInfo
,Client
,Admin
和Account
。我想要人际关系:
Client
都有UserInfo
Admin
都有一个`UserInfo Account
都与用户(UserInfo
)假设这些东西我写了POCO模型。根据我想要的关系,这是对的吗?我错过了什么吗?
public class UserInfo
{
public int UserInfoID { get; set; }
public Name Name { get; set; }
public Address Address { get; set; }
public Contact Contact { get; set; }
}
public class Admin
{
public int AdminID { get; set; }
public int UserInfoID { get; set; }
[ForeignKey("UserInfoID")]
public virtual UserInfo UserInfo { get; set; }
}
public class Client
{
public int ClientID { get; set; }
public CompanyDetails CompanyDetails { get; set; }
public int UserInfoID { get; set; }
[ForeignKey("UserInfoID")]
public virtual UserInfo UserInfo { get; set; }
}
public class Account
{
public int AccountID { get; set; }
[Required, Column("Balance"), Display(Name = "Account Balance")]
public double Balance { get; set; }
public int UserInfoID { get; set; }
[ForeignKey("UserInfoID")]
public virtual UserInfo UserInfo { get; set; }
}
答案 0 :(得分:2)
根据您的要求,您所看到的内容似乎是正确的,但在使用Code First配置实体时,我个人更喜欢实体框架模型构建器。
使用模型构建器意味着您在POCO实体上没有任何属性,这反过来意味着您不需要EF引用来使用实体。
请查看我的文章,了解有关如何使用模型构建器的更多信息:http://blog.staticvoid.co.nz/2012/07/entity-framework-navigation-property.html