nebula
nebula

Reputation: 3972

Entity Framework POCO Relationships

I am trying to implement code-first approach of entity framework. I have four entities UserInfo, Client, Admin and Account. I want relationships as:

Assuming these things i wrote the POCO models. With the relationships i want, is it correct ?Am i missing something?

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; }
    }

Upvotes: 1

Views: 876

Answers (1)

undefined
undefined

Reputation: 34238

What you have appears to be correct based on your requirements however I personally prefer the Entity Framework Model Builder when configuring your entities with Code First.

Using the model builder means that you don't have any attributes on your POCO entities which in turn means that you don't need an EF reference to use the entities.

Take a look at my article here for some more info on how to use the modelbuilder : http://blog.staticvoid.co.nz/2012/07/entity-framework-navigation-property.html

Upvotes: 2

Related Questions