Je crée une application de calendrier. J'ai une table de rendez-vous, et une table de personne. Les 2 sont liés par un champ PersonID dans chaque table. Ma question est, si mon objet sous-jacent .Net Appointment contient une propriété pour PersonName, et je peuple l'objet d'une vue de base de données (ou procédure stockée qui joint les tables) ou est-il plus correct d'avoir la classe Appointment contenir une classe People? Si la réponse est la dernière, quel est le meilleur moyen de peupler l'objet Rendez-vous/Personne de la base de données?Modéliser une clé étrangère de base de données dans C#
4
A
Répondre
0
Supposons que vous n'êtes pas en utilisant un ORM, vous pouvez jeter un oeil à la configuration DAO: http://en.wikipedia.org/wiki/Data_access_object
je créerais deux DTO:
class Person
{
public int id { get; set; }
public String name { get; set; }
}
class Appointment
{
public int id { get; set; }
public Date when { get; set; }
public Person who { get; set; }
}
Et une classe de rendez-vous « complet »:
class FullAppointment
{
private Person person;
private List<Appointment> appointment;
}
Ensuite, un DTO pour obtenir des données de la DB:
class AppointmentDTO
{
public FullAppointment retrieveFromDb(int personId)
{//...}
}
1
Je ne suis pas sûr de lire la base de données. Mais les classes pourraient ressembler à:
public class Person
{
public List<Appointment> Appointments { get; private set; }
...
public Person()
{
Appointments = new List<Appointment>();
}
}
public class Appointment
{
public Person Person { get; set; } // Only if you need this relation from
...
}
Et dans votre modèle:
Persons = new List<Person>();
1
Vous ne devriez pas dupliquer les propriétés. Une fois enetity/class devrait avoir seulement des propriétés qui sont valides pour cette entité.
Si vous voulez appeler une autre table, vous devriez avoir une propriété qui retournerait une autre entité par une clé étrangère spécifique.
Dans votre cas, j'aurais
public class Person
{
List<Appointment> _appointments;
public List<Appointment> Appointments
{
get
{
if (_appointments == null) _appointments = //LOAD APPOINTMENTS FOR THAT PERSON
return _appointments;
}
}
}
espoir qui aide.
Questions connexes
- 1. clé étrangère dans la base de données
- 2. Mongoose: comment modéliser une relation clé étrangère/inverse?
- 3. Base de données Android - clé étrangère
- 4. Clé étrangère dans la base de données SQLite
- 5. Erreur de clé étrangère de base de données
- 6. Comment modéliser le temps "relatif" dans une base de données?
- 7. web base de données sql soutien clé étrangère
- 8. RoR: clé étrangère de base question
- 9. Une contrainte de clé étrangère échoue avec aucune clé étrangère
- 10. TSQL Importante insertion de données relationnelles, avec clé étrangère étrangère
- 11. Comment identifier une clé étrangère dans une base de données MySQL?
- 12. primaykey et une exception de clé étrangère?
- 13. Une clé étrangère est-elle requise dans mes tables de base de données?
- 14. Créer une relation de clé étrangère dans la base de données
- 15. problème avec clé étrangère dans une base MySQL
- 16. Clé primaire/clé étrangère de base avec contrainte, séquence, déclencheur
- 17. Résolution de dépendance de clé étrangère MySQL
- 18. Django - Récupérer clé étrangère
- 19. Comment récupérer une colonne d'une base de données en utilisant une relation de clé étrangère?
- 20. Paramètre de clé étrangère SQLite
- 21. Impossible d'obtenir une clé étrangère
- 22. Comment définir la clé primaire et la clé étrangère dans les données de base?
- 23. comment ajouter une clé étrangère?
- 24. Ajout d'un enregistrement de base de données avec une clé étrangère
- 25. Insérer une référence de clé étrangère dans l'entité frameowrk 3.5
- 26. Requête de suppression de base de données entre deux tables avec une clé étrangère
- 27. question clé étrangère dans une base MySQL (erreur 1005)
- 28. Insertion de données dans sqlite (deuxième table avec clé étrangère)
- 29. Comment insérer une clé étrangère dans Android?
- 30. base de données H2: référence à une table dans le schéma racine d'une clé étrangère