2010-03-18 5 views
2

Je construis une application autour de Vici Coolstorage (version asp.net). J'ai mes classes créées et mappées à mes tables de base de données et peut tirer une liste de tous les enregistrements bien.Comment puis-je exécuter une procédure stockée avec vici coolstorage?

J'ai écrit une procédure stockée dans laquelle la requête saute des bases de données qui ne sont pas mappées avec Coolstorage, cependant, les champs dans le résultat de la requête correspondent directement à l'une de mes classes. La procédure prend 1 paramètre.

donc 2 questions ici:

Comment exécuter la procédure stockée? Je le fais

CSParameterCollection collection = new CSParameterCollection(); 
collection.Add("@id", id); 
var result = Vici.CoolStorage.CSDatabase.RunQuery("procedurename", collection); 

et d'obtenir l'exception "Syntaxe incorrecte près de 'procedurename'." (Je devine c'est parce qu'il essaye de l'exécuter comme texte plutôt qu'une procédure?)

et aussi, puisque la classe représentant ma table est définie comme abstraite, comment puis-je spécifier que le résultat devrait créer une liste de Objets MyTable au lieu d'objets génériques ou dynamiques ou autres? si j'essaye

Vici.CoolStorage.CSDatabase.RunQuery<MyTable>(...) 

le compilateur crie à moi pour que ce soit une classe abstraite.

Répondre

2

Il existe un raccourci dans CoolStorage pour exécuter une procédure stockée. Il suffit de préfixer le nom de la procédure stockée avec "!":

CSDatabase.RunQuery("!procedurename", collection); 
+0

merci! c'était ma question principale donc réponse acceptée – lincolnk

Questions connexes