Je souhaite créer une classe Movie. Maintenant, un film aura un certain nombre de genres qui lui sont assignés. Ex. Le film Avengers a des genres: Action, Aventure, Sci-Fi. Maintenant, mon application maintient une liste de tous les genres à partir de laquelle un sous-ensemble peut être attribué à un film.Modélisation d'une entité avec une propriété de collection
Ma conception de modèle existante possède une entité Movie avec une collection de la liste Genre entière. La classe Genre a simplement une propriété IsSelected pour aider à identifier le sous-ensemble de genres qui ont été assignés à un film particulier. Cela présente un avantage, car lorsque je conçois l'interface utilisateur pour créer un nouveau film, j'affiche tous les genres disponibles parmi lesquels l'utilisateur sélectionne/vérifie ceux qui sont applicables au film.
public class Movie
{
public ObservableCollection<Genre> MovieGenres { get; set; }
}
Cependant, je crois que celui-ci est un inconvénient de cette approche. Supposons que j'ai environ 25 liste de genres et environ 500 films, alors environ 25 x 500 objets de genre sont créés.
Pensez-vous que cela devrait être évité?
Existe-t-il une meilleure approche pour associer les genres à un objet de film, ce qui réduit le besoin de créer autant d'objets de genre et offre le même avantage d'interface utilisateur?
Ou y a-t-il une meilleure approche pour concevoir mon interface utilisateur que je peux exploiter à partir de la conception du modèle?
(Je ne suis pas utiliser un outil ORM, ni l'intention d'utiliser à l'avenir)
Je ne stocke que les genres affectés à ce film sur l'objet film, et dispose d'une fonctionnalité distincte pour l'ajout de nouveaux genres. Pensez au système SE pour ajouter des tags par exemple. Si vous voulez vraiment maintenir un "montrer tous les genres et sélectionner/désélectionner des éléments", alors j'aurais une seule liste de tous les groupes et je synchroniserais les états cochés avec la liste selectedMovie.Genres d'une autre manière. :) – Rachel