2013-08-16 3 views
1

Je regarde le code et je suis incapable de le lire. J'ai aussi essayé de trouver du matériel et des exemples, mais je n'ai pas pu trouver de documentation spécifique ou pouvant m'aider à comprendre le problème. Quelqu'un peut-il me lire le code et s'il y a de la documentation pour le lire.Dapper et DynamicParameter()

D'abord ma question est pourquoi avons-nous besoin d'utiliser DynamicParameter() qui est un objet de Dapper. Je ne suis pas sûr de savoir ce que signifie =>.

public void validRecord(string fileName, string rawContent, int userId) 
{ 
    Run(conn => conn.Execute("[dbo].[storedProc_GETDone]" 
     , new DynamicParameters 
      (new Dictionary<string, object> 
       { 
        {"fileName", fileName}, 
        {"rowContent", rawContent}, 
        {"userCreated", userId}, 
       }), CommandType.StoredProcedure)); 
} 

Répondre

1

Run ne fait pas partie de pimpant, mais => en C# est utilisé pour créer une expression lambda, dans ce cas, je pense qu'il est un Action<DbConnection>, à savoir que je suppose que votre course ressemble beaucoup à ce :

Run(Action<DbConnection> action) { 
    using(var conn = CreateConnection()) { 
     conn.Open(); 
     action(conn); 
    } 
} 

c'est à dire "Je vais vous donner une connexion, que voulez-vous faire avec?" - Dans ce cas, vous choisissez Execute une procédure stockée.

Maintenant, il convient de noter que, dans votre exemple, il n'y a aucun avantage à utiliser DynamicParameters, puisque l'information est bien connue - vous pouvez simplement utiliser:

Run(conn => conn.Execute("[dbo].[storedProc_GETDone]", 
    new { fileName, rawContent, userCreated = userId }, 
    CommandType.StoredProcedure)); 

qui fonctionnerait aussi bien. Donc, en réponse à « pourquoi avons-nous besoin d'utiliser DynamicParameter-vous ne dans ce scénario Cependant, dans certains cas, vous pourriez - surtout si vous construisez SQL à la volée manuellement, par exemple:.

if(name != null) { 
    sql.Append("and Name = @name "); 
    args.Add("name", name); 
} 
+0

Avez-vous un lien ou un matériau où je peux aller et lire sur DynamicParameter() – user2688063

+0

Y at-il quelque chose de flou dans les commentaires intellisense? –

+0

merci pour la réponse monsieur.il est clair.Pouvez-vous me signaler une bonne source pour étudier Dapper ? – user2688063