Dapper prend-il en charge les paramètres de la table SQL 2008?

.net dapper

Question

Est-ce que quelqu'un sait si il est possible de passer des données de paramètres de table à une procédure stockée avec Dapper?

Réponse acceptée

Il existe maintenant (n Dapper 1.26 et versions ultérieures) un support direct pour les paramètres de table associés à dapper. Dans le cas des procédures stockées, comme le type de données est intégré à l'API sproc, il vous suffit de fournir un DataTable :

var data = connection.Query<SomeType>(..., new {
    id=123, name="abc", values = someTable
}, ...);

Pour un texte de commande direct, vous avez deux autres options:

  • utilisez une méthode d'assistance pour lui indiquer le type de données personnalisé:

    var data = connection.Query<SomeType>(..., new {
        id=123, name="abc", values = someTable.AsTableValuedParameter("mytype")
    }, ...);
    
  • Dites à la table de données elle-même quel type de données personnalisé utiliser:

    someTable.SetTypeName("mytype");
    var data = connection.Query<SomeType>(..., new {
        id=123, name="abc", values = someTable
    }, ...);        
    

N'importe lequel de ces éléments devrait fonctionner correctement.


Réponse d'expert

aujourd'hui ce n'est pas le cas. Nous avons en fait étudié les paramètres de table-valed pour notre implémentation effrontée ( where col in @values ), mais nous where col in @values été très peu impressionnés par les performances. Cependant, dans le contexte d'un SPROC, cela a du sens.

Votre meilleur pari est de vous connecter en tant que problème sur le site du projet afin de pouvoir le suivre / hiérarchiser. Il semble que quelque chose soit faisable, cependant, probablement similaire aux options DbString ou DynamicParameters.

Mais aujourd'hui? Non.




Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi