8
votes

Subonic 3.0.0.3 ne générant pas de paramètres pour les procédures stockées

J'ai une base de données SQL Server 2008 avec un tas de procédures stockées. Lorsque j'utilise le modèle ActiveRecord fourni avec subsonse 3.0.0.3, il génère des méthodes pour toutes mes procédures stockées, mais elles n'ont pas de paramètres. Je suis DBO sur le serveur et peut exécuter les procédures stockées sans problème à partir de Gestion Studio.

Exemple de procédure stockée P>

public StoredProcedure prc_Sample(){
    StoredProcedure sp=new StoredProcedure("prc_Sample",this.Provider);
    return sp;
}


2 commentaires

J'ai le même problème. Je peux certainement voir le code du fichier .tt qui devrait être en boucle via les paramètres de ma part stocké, mais la finale générée .CS n'a aucun code qui ajoute ces paramètres. Nécessité de résoudre ce problème.


Mike, j'ai supprimé ma réponse (cela apparaîtra donc comme 0 réponses et j'espère que quelqu'un pourrait être capable de le comprendre. Ma réponse et notre creuse n'a conduit à aucune solution. Merci


4 Réponses :


1
votes

Pour déboguer un fichier de modèle T4 ...

TUTORIAL T4: Débogage des fichiers de génération de code p>

Utilisation du projet dans les modèles SUBSTONIC-30 qui pointe vers une instance de Northwind à Sqlexpress J'ai ajouté la procédure stockée ci-dessus. Ré-généré le stockedprocedures.tt et cela a créé avec joie ... P>

public StoredProcedure prc_Sample(string FileName){
    StoredProcedure sp=new StoredProcedure("prc_Sample",this.Provider);
    sp.Command.AddParameter("FileName",FileName,DbType.AnsiString);
    return sp;
}


0 commentaires

13
votes

J'ai eu le même problème et je devais modifier le sqlserver.ttcrlude pour le faire fonctionner. À l'intérieur de ce fichier, recherchez la méthode getSpParams () et modifier une ligne:

de xxx

à xxx < /pree >p>.

Réponse (Blackmael's Réponse a un lien utile qui m'a aidé à comprendre comment déboguer et passer à travers le code de modèle.

maintenant je ne suis pas sûr à 100% Pourtant, mon changement est un bon (il peut y avoir des effets indésirables). Je n'ai tout simplement pas eu de chance de la tester à fond et qu'il faut en relire plus sur restrictions car ils concernent la méthode getschema () méthode. Mais pour le moment, cela a résolu mon problème et je peux transmettre avec succès mon paramètre de procédé stocké.

Mise à jour: Cela peut avoir quelque chose à voir avec le fait que mon fichier dB est intégré dans la VS Solutin dans App_Data. Peut-être que cela fonctionne mieux de la boîte avec une instance SQL Server autonome.


1 commentaires

Cela a fonctionné. Ma base de données n'est pas intégrée, mais juste hébergée sur un serveur SQL Server 2008 Standard Edition 2008. En utilisant SUBSTONIQUE 3, je l'ai eu pour générer des procédures stockées pour toutes les autres bases de données, à l'exception de cette question particulière. J'ai même essayé de le créer à partir de zéro comme une base de données de 2008 et cela a toujours entraîné cette question. Merci encore pour le correctif.



0
votes

Semblable à la réponse de Kon M, j'ai changé la ligne dans sqlserver.tt vers: xxx

Ceci résolvait le problème pour moi.


0 commentaires

0
votes

Une autre cause possible de ceci est que la base de données n'a aucun DBO attribué.


0 commentaires