实体框架POCO关系

时间:2012-07-19 15:13:09

标签: asp.net-mvc-3 entity-framework ef-code-first poco code-first

我正在尝试实现实体框架的代码优先方法。我有四个实体UserInfoClientAdminAccount。我想要人际关系:

  • 每个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; }
    }

1 个答案:

答案 0 :(得分:2)

根据您的要求,您所看到的内容似乎是正确的,但在使用Code First配置实体时,我个人更喜欢实体框架模型构建器。

使用模型构建器意味着您在POCO实体上没有任何属性,这反过来意味着您不需要EF引用来使用实体。

请查看我的文章,了解有关如何使用模型构建器的更多信息:http://blog.staticvoid.co.nz/2012/07/entity-framework-navigation-property.html