2010-08-10 3 views
0

Je ne fais que commencer mon premier projet ASP.NET MVC (il étend actuellement un projet MVC existant qui utilise 4.0 et Linq2SQL). Ce que je cherche est un moyen de créer une instance d'un modèle chaque fois qu'un modèle différent est créé (c'est-à-dire enregistré dans la base de données). Je vois une méthode OnCreated() dans le code généré, mais c'est dans une classe partielle, donc je ne peux pas le remplacer/redéfinir.MVC2 - Y at-il des signaux pour les modèles?

Y a-t-il un moyen de lier les choses comme ça? J'ai l'impression de travailler dans Django depuis si longtemps (où j'utiliserais un signal) que je ne connais pas le bon terme à rechercher. Ce que je veux faire - chaque fois qu'une instance de Model A est enregistrée dans la base de données pour la première fois (et seulement la première fois), je veux créer une instance de Model B et enregistrer cela pour la base de données.

Et il semble que OnCreated() n'a rien à voir avec ça.

+0

Pouvez-vous sauvegarder et expliquer ce que vous essayez de faire en termes plus généraux? Vous ne savez pas exactement ce que vous entendez par "créer une instance d'un modèle chaque fois qu'un modèle différent est créé". –

+0

(Voir modification ci-dessus) – Tom

Répondre

0

Vous pouvez toujours remplacer la méthode de sauvegarde.

class A(models.Model) 

    def save(self,**kwargs): 
     super(A,self).save(**kwargs) 
     if self.pk: #Primary Key is assigned only after the save. 
      B.objects.create() 
     return self 
+0

Désolé pour la confusion: Je sais comment le faire dans Django, mais je veux faire quelque chose de similaire dans le cadre MVC de Microsoft. – Tom

Questions connexes