D'abord laissez-moi vous donner un peu de contexte.Base de données et organisation du programme en C#
J'ai des données qui ressemble à ceci:
- Runner1 | Date1 | Time1 | Laps1 | Time2 | Laps2 | ... | Time50 | Laps50
- Coureur1 | Date2 | Time1 | Laps1 | Time2 | Laps2
- Coureur1 | Date3 | Time1 | Laps1 | ... | Time32 | Tours 32
Signification: le coureur a un nombre différent de temps et de tours pour chaque date.
Voici une maquette de la façon dont je l'ai créé ma base de données SQL:
(désolé pour l'art ASCII, mais il est ma première question)
|Runner | |RunnerTimes | |Time |
|RunnerID|-----|RunnerTimesID |----|TimeID |
|RunnerID | |Laps |
|TimeID | |Duration|
|Date |
Mon problème est que j'ai un code qui a été créé avant la base de données:
public class iRunner
{
public int[] laps;
public TimeSpan[] duration;
}
public static class RunnerFunctions
{
public static double AverageLaps(iRunner runner)
{
return runner.laps.Average();
}
}
Je peux donc obtenir toutes les données de mon coureur en utilisant:
Runner runner = dbContext.Runner.Where(item=>item.RunnerID == 1);
Ensuite, je dois « convertir » au format de classe:
iRunner r = new iRunner();
r.Laps = runner.RunnerTimes.Select(a=>a.Laps).toArray();
r.Duration = runner.RunnerTimes.Select(a=>a.Duration).toArray();
Et puis je peux réellement appeler les méthodes qui sont pré-existantes:
Double average = RunnerFunctions.Average(runner);
Maintenant que vous avez l'arrière-plan , voici mes questions:
- Est-ce la bonne façon de modéliser mes données en SQL?
- Existe-t-il un meilleur moyen de "convertir" ma structure SQL en mes classes et fonctions existantes?
Quelques données supplémentaires:
- La structure que je l'ai montré ci-dessus est faux, mais ressemble à ma structure réelle
- je convertir 3 mille entrées dans une table, cela prend 500 ms pour récupérer toutes les données de la base de données, mais en prenant environ 4 minutes pour convertir dans la structure de classe existante.
Merci beaucoup!
Vous avez dit que le code a été créé avant la base de données - voulez-vous dire que vous ne pouvez pas refactoriser ou modifier le code? Aussi, êtes-vous lié à l'utilisation du framework Entity? –