Utiliser Dapper dans une classe statique

dapper micro-orm orm

Question

Je construis la synchronisation pour mon système. Maintenant, je dois insérer toute la procédure stockée exécutée dans une table. Ma solution consistait à ajouter une classe statique et à faire fonctionner Dapper à l'intérieur. En théorie, les classes / fonctions statiques peuvent être utilisées lorsqu'elles ne modifient aucun état d'objet, comme c'est le cas. Je pensais que je serais très prudent et vous demanderais ce que vous en pensez. Pourrait-il causer un problème sur la ligne?

public static class Model
{            
    public static int ExecuteStoreProcedure(string name, string xml,bool sync=true)
    {
        using (SqlConnection con = new SqlConnection(Strings.ConnectionString))
        {
            //pre

            var result = con.Query<int>(name,
                new { xml = xml },
            commandType: CommandType.StoredProcedure).FirstOrDefault();

            //post
            // insert into new table goes here
        }
     }
}

Réponse d'expert

Vous n'accédez à aucun état partagé, et ne vous fiez pas à une connexion statique, bien sûr - cela fonctionnera. Il y a beaucoup de façons d'implémenter l'accès aux données, avec des compromis différents, mais cela devrait bien fonctionner. Ne tombez pas dans le "piège Java" en supposant que vous ayez besoin de 16 couches d'abstraction (y compris un ISomething, un AbstractSomething, deux Somethings, une AbstractSomethingFactory et une SomethingFactoryFactory avec 200 lignes de configuration).



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