Dapper ne peut pas ignorer les objets imbriqués pour le paramètre?

dapper dapper-extensions

Question

Je commence à utiliser Dapper et je l'aime tellement. Cependant, comme je m'aventure plus loin dans la complexité, je me suis heurté à un gros problème. Le fait que vous puissiez transmettre un objet personnalisé entier en tant que paramètre est excellent. Toutefois, lorsque j'ajoute un autre objet personnalisé dans une propriété, il ne fonctionne plus car il essaie de mapper l'objet en tant que paramètre SQL. Existe-t-il un moyen de faire ignorer les objets personnalisés qui sont des propriétés de l'objet principal transmis? Exemple ci-dessous

public class CarMaker
{
public string Name { get; set; }
public Car Mycar { get; set; }
}

propery nomme bien mais la propriété MyCar échoue car c'est un objet personnalisé. Je vais devoir restructurer tout mon projet si Dapper ne peut pas gérer ce qui ... haha

Réponse populaire

Les extensions Dapper permettent de créer des cartes personnalisées, ce qui vous permet d’ignorer les propriétés:

public class MyModelMapper : ClassMapper<MyModel>
{
    public MyModelMapper()
    {
        //use a custom schema
        Schema("not_dbo_schema"); 

        //have a custom primary key
        Map(x => x.ThePrimaryKey).Key(KeyType.Assigned);

        //Use a different name property from database column
        Map(x=> x.Foo).Column("Bar");

        //Ignore this property entirely
        Map(x=> x.SecretDataMan).Ignore();

        //optional, map all other columns
        AutoMap();
    }
}

Voici un lien




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