1

J'essaie d'implémenter l'approche code-first de framework d'entité. J'ai quatre entités UserInfo, Client, Admin et Account. Je veux que les relations que:Entity Framework POCO Relations

  • Chaque Client a une UserInfo
  • Chaque Admin a un `UserInfo
  • Chaque Account est liée à un utilisateur (UserInfo)

En supposant que ces choses que j'ai écrit la Modèles POCO. Avec les relations que je veux, est-ce que je me trompe?

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

Pourquoi ne pas essayer juste et voir? – Dabblernl

+0

Je l'ai fait. Je veux m'assurer que je vais dans la bonne direction. – nebula

Répondre

2

Ce que vous avez semble être correct en fonction de vos besoins mais je préfère personnellement Entity Framework Model Builder lors de la configuration de vos entités avec le code d'abord. L'utilisation du constructeur de modèle signifie que vous n'avez aucun attribut sur vos entités POCO, ce qui signifie que vous n'avez pas besoin d'une référence EF pour utiliser les entités.

Jetez un oeil à mon article ici pour un peu plus d'informations sur la façon d'utiliser le ModelBuilder: http://blog.staticvoid.co.nz/2012/07/entity-framework-navigation-property.html

+0

+1 pour l'article de blog. Facile à comprendre. – nebula

+0

merci :) Vraiment désireux d'entendre toutes les suggestions pour le rendre plus facile ainsi –

+0

Vous pouvez ajouter la clé primaire et la mise en œuvre de la clé étrangère ainsi que les propriétés de navigation en utilisant le constructeur de modèle. En tout cas, votre post est très clair et lisible pour les débutants comme moi :) – nebula