Clarification du code exemple Dapper

c# dapper

Question

J'essaie de grogner Dapper et il me semble qu'il manque quelque chose de fondamental. Quelqu'un peut-il expliquer le code suivant tiré de la page d'accueil de Dapper sur le code Google et expliquer pourquoi il n'y a pas de clause From et ) est passé un type anonyme, je suppose que cela configure en quelque sorte un objet de commande, mais souhaite une explication dans une terminologie mortelle.

Merci, Stephen

public class Dog {    
    public int? Age { get; set; }    
    public Guid Id { get; set; }    
    public string Name { get; set; }    
    public float? Weight { get; set; }    
    public int IgnoredProperty {
        get { return 1; }
    }
}

var guid = Guid.NewGuid();
var dog = connection.Query<Dog>("select Age = @Age, Id = @Id", new { Age = (int?)null, Id = guid });            

dog.Count().IsEqualTo(1);
dog.First().Age.IsNull();
dog.First().Id.IsEqualTo(guid);

Réponse acceptée

Les deux premiers exemples ne font tout simplement aucun accès "réel" aux données, probablement pour les garder simples.
Oui, il y a une connexion utilisée ( connection.Query(...) ), mais uniquement parce que c'est la seule façon d'appeler les méthodes de Dapper (car elles étendent l'interface IDbConnection).

Quelque chose comme ceci est un code SQL parfaitement valide:

select 'foo', 1

... il ne fait que "générer" son résultat à la volée, sans rien sélectionner dans une table.

L'exemple avec les paramètres et le type anonyme:

var dog = connection.Query<Dog>("select Age = @Age, Id = @Id", new { Age = (int?)null, Id = guid }); )

... montre simplement la capacité de Dapper à soumettre des paramètres SQL sous la forme d'un type anonyme .
Encore une fois, la requête ne sélectionne rien dans une table, probablement pour rester simple.




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